Show HN: I spent 2 years building Tablane as a 17-year-old (github.com)
I'm Marcus, a 17-year-old Software Engineer from Germany.
For the past two years I've been working on Tablane [0](https://github.com/Tablane/tablane) a task/project management tool, with features like:
- Collaborative Editing (google docs)
- Optimistic updates with RTK Query
- Realtime sync with Socket.io
- An awesome design
Let me know what you think! Ask me anything!
How I got here: 2020: I was developing a TTT [1] (Trouble in Terrorist Town) plugin for my minecraft server, when I started to require a project management tool to keep track of the features I wanted to implement, originally I used a text file, but after some time I started using products like ClickUp and Monday.
But not long after I hit several paywalls for features that I wanted to use (Custom Status, Limited Number of Boards, ...) Soon after Tablane (originally task-board) was born. I started building the website using plain HTML, then found out about React and completed Colt Steele's "Web Developer Bootcamp" [2] and "The Modern React Bootcamp" [3] and started re-writing Tablane in React, and started adding feature after feature.
Now I am about to finish Highschool and originally I thought about applying to college and spending another 3-5 years there, but after the positive feedback I got on a three month internship I did at ContentPepper, and seeing how my own projects developed, I decided to look for open Developer positions, to work with a team of experienced developers so I can learn even faster.
Links:
[1] https://github.com/MarconLP/TTT
[2] https://www.udemy.com/course/modern-react-bootcamp/
[3] https://www.udemy.com/course/the-web-developer-bootcamp/
Socials:
Résumé/CV: https://drive.google.com/file/d/1CbZi1Bm-MlDHEb4WjsFBzIBSomJ...
LinkedIn: https://www.linkedin.com/in/marcus-hof/
Email: marcus (dot) hof (at) protonmail (dot)com
GitHub: https://github.com/MarconLP
Twitter: https://twitter.com/Marcon565
190 comments
[ 3.1 ms ] story [ 228 ms ] threadHow did you build collaborative editing? I know it's a very complex thing to achieve.
It uses the Sustainable Use License. I am not familiar with this though some googling shows several companies using it. Can you share what led you to choose it?
Minor nitpick: your readme says "First, rename .env.example to .env." but I didn't see anything in the readme referring to "env".
Tiptap is listed as dependency, so it is almost certainly using Y.js as the CRDT provider.
As KRAKRISMOTT said, I am using TipTap with their HocusPocus backend!
> It uses the Sustainable Use License. I am not familiar with this though some googling shows several companies using it. Can you share what led you to choose it?
I mainly choose that one because of the incident with AWS offering ElasticSearch as a Service without their approval
I want something basically Opensource, where Individuals or Companies can use it freely for their own purpose BUT limtit companies from starting a competitor to Tablane Cloud from my own work.
> Minor nitpick: your readme says "First, rename .env.example to .env." but I didn't see anything in the readme referring to "env".
I forgot to add a .env.example file in the tablane-api repo. Going to fix that!
I really like the nesting, as that's often how my mind works and why I like notion-like things where you can build nested workflows. However, w/ clickup I feel you get nesting but it's often more like hyperlinks so you don't always get to see hierarchy and how things relate, where this you get a more birds-eye view of how everything is linked to each other via the nesting/folder-like structure. Both have their pros and cons, clickup's being it can be a bit more like a wiki meets trello+notion, but again finding things is a bit more chaotic.
Good idea -- working in a team that has a few experienced developers provides a great way to rapidly learn - both to improve technical skills but also get experience and start to learn all the other skills required to be useful on real world software projects. A great environment for learning might be one where the team spends all or most of the time working from a central office. It can sometimes also be good to find a team where you're not the only junior developer, and there's a healthy ratio of junior to senior developers.
That said, one potential benefit of college is the opportunity of gaining exposure to topics or fields you might find very interesting, but don't know about yet. But you always have the option of changing your mind after a year or five of working on software projects in industry, and working in industry may also give you an idea of a particular niche you want to specialise in.
Best of luck!
Few suggestions:
The description you've given us here on HN is so much better than on your landing page here: https://tablane.net/ The first thoughts I had were: "Okay, Productivity. And it's 'Next Generation'. What does that even mean? The screenshot is pretty but I don't really understand what it's showing". I then read the GitHub description "Tablane is a workspace that adapts to your needs. It's as minimal or as powerful as you need it to be." and ended up even more confused. What is a workspace in this context? It's great it can adapt to my needs, but I don't know what it even does. Once I read the description here on HN, it made a lot more sense. It'd be useful to explain the hierarchy of workspaces/spaces/tasks a bit more.
There are a few dialogs that don't seem to support keyboard controls (like Enter), I've opened a PR for this.
When I try and run it locally to test my PR, it seems to complain with an "AppError: Invalid access token" on the backend. I get a "Something went wrong" error message (and the XHR fails with a CORS error). What am I doing wrong?
> There are a few dialogs that don't seem to support keyboard controls (like Enter), I've opened a PR for this.
Thanks, I am going to check that!
> When I try and run it locally to test my PR, it seems to complain with an "AppError: Invalid access token" on the backend. I get a "Something went wrong" error message (and the XHR fails with a CORS error). What am I doing wrong?
I forgot to add the .env.example file to the tablane-api repo: https://github.com/Tablane/tablane-api/commit/6c92035505914d...
How did you remain 17 for 2 years?
> I decided to look for open Developer positions, to work with a team of experienced developers so I can learn even faster.
Seeing as you're in Europe and not in the U.S. (with exorbitant tuition costs), I would actually recommend against skipping out on College. I can confidently say that while experience in the industry is great (having worked part-time at a startup, as well as various internships during College), I think the knowledge gained from University classes is often underrated.
Not only that, but College is definitely a life experience that I would recommend not to skip lightly.
Regardless, this is super impressive work!
Unless there are strong reasons not to do college, I would recommend to not skip it.
Disclaimer: I am talking about OP's situation specifically. I am not trying to make a general "everyone should go to college unless they have a strong reason not to" statement, because I don't agree with it myself.
All that said, I really grew up at university. I loved it. It was great fun, great to expand your social circle and I'd absolutely recommend it if you can.
There is also a lot to be said for being a well-rounded person. Even at £9k per year, I would encourage people to go to university - it is the most convenient way to meet a lot of new people, experience living in a different part of the country, and learn to be an adult all while keeping some structure and goals in place.
100% agree. Great advice. I never went to University, in my case for reasons that I prefer not to mention and it has been a constant source of regret. I wish I had a time machine.
My social life is like a withered plan im the middle of a toxic waste dump :)
I would say, for me, it actually would have been good to spend a few years working in industry to get a view of what real world programming is like and gain some awareness of what doors might be closed to you without a degree.
In this situation I would recommend being careful to not become dependent on the level of income that most software development provides. If you are cautious with your finances, you could decide to go for the degree with some money saved up as opposed to it feeling like a major financial hurdle to leave your job in order to go to school full time.
I agree that the computer science knowledge, even some of the deeply theoretical stuff, is heavily underrated. Classes like OS, networks, programming languages and compilers, and computation theory have taught me stuff I use in actual software development. Plus, learning how to look up stuff and understand research papers and take measurements and form experiments (you will need to read heavy documentation and measure things in industry).
Without knowing the fundamentals of CS like data structures you may miss out some concepts and end up doing things inefficiently (in both development effort and inefficient programs). Webdev alone won’t get you that knowledge.
As for the “college experience” personally I disagree. I’m of the camp (as an American) that it’s mostly a glorified American thing. As long as you have some friends, who you can find in college or industry or your local town (if you don’t move), you are set, and you’re not missing much (as having some friends and hanging out basically is the college experience).
But also, as someone who went through college I think it greatly helps to have experience in industry. Because while you miss out on purely industry, you also miss out on purely academia (cue: academics who are wildly out-of-touch, papers on deep theoretical concepts I doubt will have any real-world use). It also really helps with finances (read: not going into college debt) and "getting your foot in the game" and making connections early is extremely useful as it will let you graduate with experience on your resume and skip entry-level jobs. I think that the best solution is both, hence join an internship-focused college or take college classes and maybe lab work while doing an internship
So if you already have many job offers (1) (you can negotiate a good salary) and already have a GF (2) reason 1 and 2 is already covered and thus you don't need uni/college.
The web is full of crap. To really learn you need to learn how to learn. Education still matters. Otherwise you’re just a gpt4 prompt monkey.
I’ve found many times in my life where the internet doesn’t know anything about what I’m trying to figure out. Your “just google It” recommendation is destructive.
Now, college / uni plays an important role here. It helps you learn how to learn stuff. If you're already good at learning things (and I mean really, really good), you can skip it. Otherwise, you should at least give it a try. Of course, try to get into a good one.
I only got a bit about skimming and note taking from my high school teachers
So, sure, you can Google the hell out of CSS, and clearly that's good enough to build Web pages.
But equally there are a gazillion posts about everything, and no considered, coherent, path through it all.
A university maps a well-trodden, and hopefully well considered path through the knowledge. It leads you to places unknown, and sparks interest (and understanding) beyond just writing code.
For example you might randomly hear about P versus NP, or NP Complete, and decide to follow up on the web about that. Chances are though this might be the first time you've come across this. But I'm pretty sure it'll come up at college.
A degree course guides you through the knowledge, taking you places you didn't know existed. Over the long run this foundation makes it a lot easier to grow and do more than just "write code."
If you have the opportunity I recommend taking the time to do some formal study.
I was struck so many times thinking I understood something (either through lectures or self-learning) to be proved wrong by the exams or talking to other people who studied the same.
It's no wonder that TAOCP is mostly about exercises. But, the algorithms are easy to self-test for understanding and knowledge. The other subjects -- not so much. Formal education helps here.
College doesn't go away, it can wait.
Doing a "gap year" and deciding later if I wan't to visit college.
Realistically, however, college is only important if you are planning to leave your own country; or get involved in a very bureaucratic/hierarchical company. Since he is from Germany (which has a quite powerful passport), college will only be important if he wants to immigrate later to the US.
I ended up starting to work in software for cash before I finished high school, and I'm still a dev that loves the stuff, 13 years later. Makes me happy to see so many people with a similar story.
That said, I did eventually go to college and I don't regret a thing. I met so many people, and did so many things I wouldn't have done otherwise, and it made me a better professional. The corporate world can be very oppressing and unforgiving. I wouldn't miss university, having the chance, and you can still freelance while you're there too!
If you want to be real good at inverting a binary tree and get a FAANG job ASAP, choose the academic route. If you love programming and want to get better at it with real world experience, get a job. You will have the rest of your life to learn about inverting binary trees if you really need to. 100% of what you will learn is available online, often for free.
Don't underestimate the effect of starting your career at 18 instead of 25. I'd rather hire the one with most experience.
The combination of breadth and depth of knowledge and experience available at universities is unmatched anywhere in the world. OP may find themselves more interested in developing neural interfaces, working on processor hardware architectures, designing next generation microscopy systems for biology, or a hundred other things. It's true that there are other entry points into those areas that don't involve being on a campus, but a good university provides efficient entry points into all of them. This is especially true for students who set up independent study courses for themselves, start/run student organizations, talk to professors about their research, and seek out research and project opportunities during summers.
I knew exactly the job & company I wanted to work for way before college, so I had learned everything relevant to that goal before I joined. From my perspective, I spent 3 years learning stuff I didn't want, or paying to be taught stuff I'd already learned on my own. Both left a sour taste in my mouth.
I graduated into exactly the job & company I wanted from the start. I give college zero credit for that. Well, maybe a little bit for getting past the "candidate has a degree" hiring checkbox, but I often question the value of that. 3 years of my life. Ugh. I was watching the clock the whole time.
I used to work half days and whole days whenever my schedule would allow.
But if you can, I think it’s the safest decision to go.
People in this thread give a bunch of reasons, which I challenge:
1. Immigration: I’m 25 from a shithole country. I have lived and worked in Asia, Europe and America. A bit more difficulty, but nothing major. Surely with a German passport this wouldn’t be a biggie.
2. Learning: Admittedly, the internet has a lot of noise. But there are good resources like MIT OCW, teachyourselfcs, etc. I will argue some universities are worst than some of the online resources.
3. Social connection: This wouldn’t be a problem if you have hobbies, community and a life outside work. You can always make life long friends.
4. You will learn or experience something vague: Please be specific? Usually, there are other ways to learn or experience these things.
The biggest issue I had to deal with was I thought all the college folks were better than me. But that went away when I joined bigger companies and started interviewing and working with college folks. They were not special.
The U.S. PR lottery couldn't care less. Neither many other non-EU countries.
Would have been better to start earlier but that wasn’t an option. Extra-meta: would have been better to go to a trade school or similar and skip college altogether but that’s not what they were selling back then.
The private beta is refering to the versions before v0.1, when there wasn't a publicly hosted version.
I immediately went in and created a Workspace and then a Space (which I gave the same name because I was unsure what a Workspace is or a Space is), and then added some tasks with subtasks.
Then I went to "Home" and it told me "No assigned tasks".
Okay...can I assign tasks? I don't see a way.
Looking at the roadmap, I see that "assignee" is a TODO, but does that mean the Home will be blank until that's implementing? I don't know!
Also, when I open a task, the subtask list is titled "Empty". It doesn't matter whether there are subtaks entered—it's titled "Empty". I'm not sure why or if there's a way I can make it say something else—not sure what I'd want it to say.
Overall, this looks good, seems easy to use (in the sense of "typing in tasks and subtasks was quick and easy—surprisingly rare in such apps!) and I love that you're building in public this way. I'm not ready to switch to using it, but in some ways it's better than the competitors. Really, the ease at which I could type in and rearrange tasks+subtasks is better than Notion (the worst!), Emery (no subtasks), Amazing Marvin, or Todoist. Get working "inbox"/"timeline" view and "deadlines" (at a subtask level), and I might be ready to pay you money to use it.
Pick from the Essentials column list and add "People" to the task list. Then pick yourself. It'll show up on the homepage.
As a personal TODO app, I would want things to default-assign to myself, but I realize this is meant more of a collaborative app.
The screenshots seem more "complete". so either I'm missing something or I just don't have access to a lot of the "beta" features.
Here are some examples: https://imgur.com/a/5EL2LJq
Good luck!
It'd be worth pinging over an email to someone senior there if you haven't already with a link to your portfolio (and maybe this post) if you're particularly interested.
One thing that would help onboarding, I think, may be an initial/sample/example/default workspace with some illustrative sections and tasks. It's a bit too empty/minimal up front, but I see some potential/promise here for sure.
Again, nice work!
I'm a C# guy, so I might not be of any help, but I'm a professional developer for 10+ years here in Germany. So If you have any questions, you can find my email in the about page.
Reasons against college
- I recently visited a College Conference and wans't really impressed by any of them, mainly because their presented curriculum where basic js, css, html, react, easy leetcode algorithms which I already know
- I don't really happy with my current position in School, where I sit and listen to the teacher talking about a topic for an hour which I could teach myself with a 5 min youtube video
- Additionally my plan was to move to the US where Waterloo University would be 100k a year for non-us-citizen
- I've heard that after a few years of working as a Software Engineer the college degree doesn't matter anymore
- Having an income
- learning from experienced Software Engineers
Reasons for college:
- the life experience
- some people say getting a job without a degree is almost impossible
What do you guys think about this list?
That sounds like a terrible idea, to be fair. (And you don't mean University of Waterloo in Canada?). Isn't University free in Germany?
> mainly because their presented curriculum where basic js, css, html, react, easy leetcode algorithms
Maybe, but are you sure they aren't teaching engineering ethics, digital logic, discrete algebra, calculus, and a lot of other things too?
Additionally, you will never again get the chance to be 18-22 and around a whole bunch of 18-22 year-olds again. It will never be easier in your life to make friends. You have your whole life to be programming. Don't make the same mistake I made. Live it up. Study abroad. Go on spring break with friends.
There are formative life and social experiences in college at 18-22, which are difficult to recreate when you're older.
Many of the friendships and experiences won't just improve your CV - they can enrich the rest of your life.
U of Waterloo co-op program is basically a guaranteed FAANG tier job on graduation if you have any talent, which Marcus obviously has a great deal of. I have never, not once, regretted hiring a Waterloo CS grad. They have an exceptional program.
I got my first programming job at 19 (I started interviewing at 18), and the job description required at least 3 years of experience. I got an interview loop on the basis of sharing the source for some hobby programming I did. From there it was mine to lose. You have a hobby program that is impressing a number of industry professionals already, so if you want to pursue that route I assure you that with perseverance you will get a fulltime position. Whether or not it's wise for you to do so I prefer not to advise you on. I can only say that I "withdrew" from college to work and haven't regretted it since. But those were different times and different circumstances so I have no idea if that's a good idea or not now. And for what it's worth I also have a very high opinion of the mathematically rigorous approach to CS that at least used to be de rigueur at continental universities. So if those programs are still as good as they used to be you might want to consider that too.
With regard to getting that first job: unless you do a co-op program like Waterloo, there is basically no way to get an intro job without not actually meeting the experience requirements. You never see listings saying "No experience necessary!"
Take a look at the course list, pick one that sound interesting and just go there for a day or two in a big hörsaal, no one will care about you. Vorlesungen are boring but it will give you insights on the topics you will study there.
In most courses no one will care whether you go there or not, just do it at home and quicker.
You won‘t need all of that but it will give you a strong foundation for whatever the future holds.
If you want to work look for part time positions and study on the side. It‘s easy because the cost is only €600/year and includes public transport.
The degree will help you everywhere: immigration, getting past hr, getting jobs that go beyond web dev etc.
That said there are ways to get those qualifications at your own pace and much cheaper. Find a way to speed run a degree. It'll be worth it.
Yeah there are many options. One thing you can do if you have any other advanced qualification and work experience is directly enroll in an online master's program. Some universities allow it. Some will take passing certain exams at the same level as bachelor but those exams do not require you to spend 4 years specifically. You can take them anytime depending on knowledge.
This way, you can speed run through an advanced degree in 2 years remotely while working full time. OMSCS has good reputation and there are other solid programs.
At last, you could also do part time university targetted at adults which provide more leeway in attendance or group activities.
You might, but it (typically) comes so late in life is it really worth it? I worked while my friends went to college. They're now starting to see these doors open. I'm ready to retire.
> Find a way to speed run a degree. It'll be worth it.
That will help over a traditional track, but unless you're ready to speed run a degree at like the age of 10, you're still going to be way behind. Due to the time value of money, the most valuable working years are in your teens (or even before, although the law can often make that a challenge).
If you have any interest in other fields, such as communication, I.R., psychology, or economics, they'd be helpful I think. And you can clear out those pesky migrate-with-bachelors visa requirements people have mentioned.
There are also correspondence college courses (traditional MOOC equivalent), but yeah, it's not really a substitute for undergraduate life.
Big players such as Google offer software engineering apprenticeships targeted at people interested in tech but without formal CS degrees. They're a great way to learn, do real work and rotate around different teams.
Go work for as long as you think it's rewarding, and maybe in a few years you might want to go to university and then you can easily work part time as a freelancer. You'll be one of the few students who don't have to worry about money.
Anyway, do whatever motivates you the most right now!
If you're interested in working in Berlin, send me message, I might be able to give you some recommendations and/or contacts depending on what you want to do.
As for why I went to college; I made that decision because I didn't really know what I wanted to do or where I was headed and I wasn't experienced at all in programming or any CS related topics.
The main benefit for me was being in an environment where I was introduced to new CS topics/ideas. As for having a deep understanding of those topics and how to implement them, I had to self study/teach myself.
My point is, is that you shouldn't feel pressured to do anything. You need to make a decision that works best for you because the value of uni/college is, and will be, different for everyone. :)
You’ll quickly reach a point where YouTube and Google won’t easily do, and only genuine and deep work will. That’s when rewarding, lasting impressions will happen (which superficial topics like HTML or the latest JS framework aren’t!). It shouldn’t be like just another frontend boot camp, just longer. Challenge yourself and reap the benefits forever. That and campus life in general of course…
> If a lecture is basic and you could indeed replace it with a quick video, look for better, more challenging or unique lectures/degrees/curricula.
This has for years been a point of frustration for me.
Do you have any suggestions on how to get into more challenging lectures when the previous ones are prerequisites, and cannot be tested out of?
Not much you can do. However, even university administration is just people, at the end of the day. It's surprising how much can be achieved and how many rules can be bent favourably if one simply asks nicely, or has the right connections. That said, you'll need some proof that you're capable of skipping classes. "I find it easy" wouldn't do.
I'm almost the same age as you.
I work full time with university (both remote and in separate timezone). There are partial remote options for CS which didn't exist before pandemic. You may only need to attend for semester and in-between exams in person and rest you can run it on your own pace.
I don't spend much time on university since there is no mandatory lecture or attendance. I know a lot of the course work already so I can do fine on submissions, exams, etc without having to attend remote lectures and watching videos.
It can be tough especially with maths and there is no campus lifestyle.
Daily meeting is with people in 40s instead of 18-20 year olds but I love that, some may not.
I only need the degree and some formal framework so I'm not super picky about the university ranking. Most options available are not "elite" so that's something to consider.
They are also paid out of pocket unlike germany where university is free. It can be expensive but since I work, I don't have to worry about it.
You need to watch out for accreditation. There are few authorities in each countries with specific rules with regards to whether the degree will be recognized if done part time or partially remote.
You can also get an equivalence certificate for immigration purposes.
The trade offs made sense for me. It may not for you or someone else. I'm happy with my current position.
Feel free to email me (in the profile) if you want to discuss or learn more. Throwaway for privacy reasons.
One piece of advice - you should do some research on US/Canadian immigration policies and how a college degree affects (or doesn’t affect) your ability to immigrate. This is something that may not be top of mind for you, but if your goal is to move to the US it’s a very important factor to consider.
- The whole js, css, html, react stuff sounds more like a beginner web dev bootcamp that should last a few months rather than a 3-4 year CS degree. Avoid that.
- Sometimes YouTube is great. E.g., a playlist from a Cambridge lecturer [5] was immensely more valuable than the live lectures I was being delivered alongside 200+ other students. I don't think lectures are efficient but I typically have a mix of lectures + labs + coursework and now, a substantial individual project supervised by a researcher. I'm excited for the future of edtech and programs like OSSU [6] are great if the focus is purely on absorbing CS content but its limited. Something else I found is that the modules I dreaded the most and certainly wouldn't have opted into had they been optional were the ones I learned the most from. Who knew that an Interaction Design class would be so relevant for doing customer discovery in a startup.
- No doubt that you can also have an income while studying.
- Pick up an internship to learn from experienced software engineers.
- The life experience is something I'll miss dearly, be it sports, socialising, dipping into the startup culture (We have an on campus accelerator).
- I stress more about turning down jobs than worrying about not having one.
If you have access to a quality CS degree that doesn't cost you a kidney then go for it.
[1] https://github.com/Cheon-App/planner [2] https://reflection.app [3] https://the-ciru.com [4] https://medium.com/wise-engineering/wise-engineering-interns... [5] https://www.youtube.com/watch?v=UEAMfLPZZhE&list=PLeKd45zvjc... [6] https://github.com/ossu/computer-science
This is invaluable as time will start slipping in front of you faster and faster, and soon you won't have time anymore to experiment and try new things.
As a general advice, I'd tell you to give college a try, and apply to something that is only tangentially close to coding. Keep working on your startup and keep improving your CS skills as you have been doing, and in College try new things. Whether you want to be a coder or an entrepreneur, you'll require many different skills. A diverse study plan that includes a bit of different subjects (economics, law and alikes) can be very useful.
Think of what you have achieved in only 17 years, and then try to picture where you'll be in another 20. And what the world will look like in 20 years. Your most valuable asset is and will be your brain, so the most you can develop it, the better.
Disclaimer: I'm a University professor
If what you’re good at is a marketable skill (mine wasn’t) then all the better.
Also, probably not the best advice.
I stopped reading at "Tablane is a workspace that adapts to your needs. It's as minimal or as powerful as you need it to be."
This tells me nothing and triggers my "do not ever go there scam" sense.
That is the "most" fun part of college if you're into nightlife. Friends of students would come up in the 2nd year and have a lot more fun because they had been earning money by working a full time job while students were getting themselves into debt to have a "good" time.