[HN Gopher] Show HN: I spent 2 years building Tablane as a 17-ye... ___________________________________________________________________ Show HN: I spent 2 years building Tablane as a 17-year-old Hi HN community, 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: [0] https://tablane.net [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: Resume/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 Author : marconlp Score : 117 points Date : 2023-01-06 18:47 UTC (4 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | samsquire wrote: | This looks really good. Thank you for your hard work. | | I would like this kind of tool to be integrated with a Mozilla | Ubiquity style interface or Sublime Text command palette and | integrations with Zapier, so we can actually build things with | the tool. | metaketa wrote: | Looks very nice! What I have personally always missed everywhere | is the Paradigm of seeing a project as a graph. Most pm tools | only allow a specific depth for subtasks and often the | functionality for subtasks is limited compared to top level | tasks. Whereas what I'm looking for is the Lisp/homoiconic | variant of project management tools. I want to make a nested list | of tasks like you would do in a text file, and then navigate that | list with all the views we know and love. | jemmyw wrote: | > Show HN: I spent 2 years building Tablane as a 17-year-old | | How did you remain 17 for 2 years? | lol768 wrote: | Birthday on the 29th of Feb? | marconlp wrote: | Actually my birthday is tomorrow | fancyPantsZero wrote: | They must be travelling at over 80% the speed of light | wiseowise wrote: | Beat me to it. | kevmo314 wrote: | Very cool! I love the public roadmap | https://app.tablane.net/shared/board/63906741c22c232ed88df79... | yamasanama wrote: | I fully concur with everybody suggesting you to not skip a | university education. As a basic example from this project, | fundamentals of OT/CRDT which you need to deploy to make colab | editing work correctly (you have used that, right?) are so much | easier to grok after a bit of theory classes. Your future | colleagues will thank you for it. | marconlp wrote: | I've seen a lot of discussion about my choice of looking for a | job directly after Highschool. | | 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? | xupybd wrote: | You're probably right that a college is not the fastest or | cheapest way for you to learn but the world works in funny | ways. You might find a degree opens more doors than it should. | | 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. | Waterluvian wrote: | If you choose not to go to college, I encourage you to write a | lot. Communication is a thing you practice a lot in college, | possibly without even noticing. | coryrc wrote: | > move to the US where Waterloo University would be 100k a year | for non-us-citizen | | 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. | JanSt wrote: | WWU has a pretty math heavy curriculum (although there are now | less rigouros math courses for Informatikstudenten) and you | will learn a lot of abstract thinking, computational theory, | optimizations, operating systems, databases (with theoretical | foundations), computer graphics, computer vision, machine | learning and you can get a glimpse into things like | Medizinische Informatik in seminars. | | Take a look at the course list, pick one that sound interesting | and just go there for a day or two in a big horsaal, 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 EUR600/year and | includes public transport. | | The degree will help you everywhere: immigration, getting past | hr, getting jobs that go beyond web dev etc. | theodric wrote: | What's most impressive is that you managed to remain 17 for two | years! | krat0sprakhar wrote: | Excellent work. Committing to working on something for 2 years | and shipping is an incredible achievement at any age let alone | 17. Keep at it and you'll go places! | | Good luck! | amitprasad wrote: | Hey Marcus! Super cool to see another fellow Minecraft- | jumpstarted developer. I got into programming way back in 2013 | with Minecraft mods and then Bukkit/Spigot plugins. | | > 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! | filoleg wrote: | To add to your great points, if OP ever decides to immigrate | elsewhere (not even talking about the US specifically, but | pretty much anywhere outside of the EU), attempting it without | a college degree can range somewhere between extremely | difficult and impossible. Yes, even for high-earning fields | like software development. | | 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. | fillskills wrote: | An additional tip: College is not too hard, specially in | colleges where you can choose to pursue easier subjects or | less number of subjects in a semester when needed. This might | give OP the flexibility to purse the startup/project in | parallel with college if they want. | z3t4 wrote: | All knowelage today can be found on the web. And you will never | have any use of 95% of the course. If you get emplyed you will | find that you already know more then the people with an | engendering degree. But I still recommend getting a engineering | degree for two reason 1) those with a degree earns 25% more | then you because they can get more job offers 2) | university/college is good for your social life. | | 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. | armchairhacker wrote: | Would it be acceptable to do a part-time (i.e. community) | college or take college classes with an internship? If not, I | strongly recommend look at a college with co-op and internship | program. | | 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 | FlyingAvatar wrote: | As someone who left mid-college to do software development | work, I regret not completing a degree of some kind. (I was | studying electrical engineering.) | | 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. | Octabrain wrote: | > 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. | | 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. | consp wrote: | Nice job! | | 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. | gremlinsinc wrote: | Looks pretty awesome, definitely see this as a nice clickup | replacements for small projects where clickup might be a little | bloated/overkill. | | 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. | marconlp wrote: | Do you mind sharing an example of your hierarchy? I have a | similar feeling with the separation of tablane's workspaces, I | though about adding a discord-like workspace switcher. | maille wrote: | I'm giving it a try (using the cloud version) and can't find how | to assign someone or set a status to a task. Is it limited to the | private beta? | marconlp wrote: | You have to add a People Column to the Board in the top right | corner, in which you can assign someone. | | The private beta is refering to the versions before v0.1, when | there wasn't a publicly hosted version. | maille wrote: | Thanks but I have no idea how to do that, maybe I'm not even | in the "board view" for starter. Ok, found it, the small + | icon. I would suggest to make it more obvious that this icon | hides all the nice stuff | mgaunard wrote: | Settings don't seem to work on mobile. | marconlp wrote: | Yes, they are currently not mobile optimized. It's not a high | priority because I think doing it once on a Desktop/Laptop is | okay for now. | lkbm wrote: | This looks promising. | | 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. | lol768 wrote: | > Okay...can I assign tasks? I don't see a way. | | Pick from the Essentials column list and add "People" to the | task list. Then pick yourself. It'll show up on the homepage. | lkbm wrote: | Ah, yup, thanks! | | 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. | lkbm wrote: | Oh, I think "EMPTY" is the lack of a label? But I can't add | labels, I also can't mark things as done. | | 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. | marconlp wrote: | You have to add a Status Column. There you will be able to | add labels. After that you need to group the tasks by that | Status. | lkbm wrote: | Ahh, also lets me assign! Thanks! | lowercased wrote: | Nice job so far! | | 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! | shoo wrote: | > I decided to look for open Developer positions, to work with a | team of experienced developers so I can learn even faster. | | 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! | topicseed wrote: | Can't wait for you to be spotted and hired by ClickUp ;-) | marconlp wrote: | I would have already applied at ClickUp if they weren't hiring | only 5+ year Experience Software Engineer | lol768 wrote: | If you're good enough (and you are!), sometimes requirements | like these aren't as set in stone as they may appear and | rules can be bent/positions created. | | 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. | sakopov wrote: | Congratulations on sticking to it and delivering a useable | product after 2 years of work! That's an impressive feat at your | age. | marconlp wrote: | Thanks, the main inspiration was to avoid paying 8$/month to a | competitor and actually using it myself! | rglover wrote: | Nice work, Marcus. This is really impressive. Dig the polish on | everything. | lol768 wrote: | This is super impressive; nice to see folks who've come from a | Bukkit plugin development background too :P | | 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? | marconlp wrote: | > I got that feedback several time already I tried to make it | easier to understand with the interactive demo on | https://tablane.net | | > 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... | agentwiggles wrote: | Really nice looking work! How did you build your landing page and | your design? One of the major gaps in my skillset is design/css, | so I'm always impressed by good looking sites like yours. | marconlp wrote: | I design things by throwing a lot of elements I like from other | places together. | | Here are some examples: https://imgur.com/a/5EL2LJq | agentwiggles wrote: | That's quite a simple and sensible answer! Nice work. I might | need to assemble some reference material for myself like | that. | MrGilbert wrote: | Kudos to your platform! Really cool. I'd also like to advice | against skipping university. You might aim higher, but having | some kind of degree helps opening some doors, especially in | Germany. But I also recommend checking out some internship or | part-time opportunities. Wish you all of luck! | | 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. | xupybd wrote: | * * * | hejejejj wrote: | [flagged] | shudza wrote: | Go to college and have fun. You are too young to waste your best | years working. | JanSt wrote: | Any domain you are especially interested to work in? Robotics, | finance, media, sports, health? | vintagedave wrote: | This looks really professional, and I'm impressed. I like you can | self-host as well; I'm not personally a fan of relying on the | cloud or third-party services for things like personal task | management (company task/project management is fine), which I | think many on HN share. Self-hosting goes a long way to solving | that. | | How 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". | marconlp wrote: | > How did you build collaborative editing? | | 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! | KRAKRISMOTT wrote: | > _How did you build collaborative editing? I know it 's a very | complex thing to achieve._ | | Tiptap is listed as dependency, so it is almost certainly using | Y.js as the CRDT provider. ___________________________________________________________________ (page generated 2023-01-06 23:00 UTC)