Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What was an interesting project you started and finished over a weekend?
172 points by nishithfolly 8 months ago | hide | past | favorite | 238 comments
What have been those small, satisfying projects you started on a Friday evening, and by Sunday, you had something cool or useful (or both!) to show for your efforts?

Was it a simple app that solved a daily annoyance, some fun IoT experiment, or some non-tech hack that made your life easier?




I'm Brazilian and when I moved back home for a bit the country had recently inaugurated a national exam for all high-schoolers. About maybe a year after, they'd publish an anonymized data set for researchers with a nice question-by-question breakdown of how every student performed. I worked at a school at the time, and one thing we wanted to know was how WE had performed in the questions so we could gauge if there were some things our students were consistently unprepared for.

They didn't provide that data, but it turns out with a little bit of grokking and staring at that 10gb text file, you could reverse engineer it so you could extract all the kids of a given school, and aggregate all of their answers. I produced a nice little report for our admins, with the questions of the text next to how we had performed in the aggregate and state averages, as well as averages of our "competitor schools."

The best part, though, is how I remember it being a bit "bullshit" that we, a private school, could afford to do this, but since the data was actually valuable to inform practice, surely the department of education should do that for every school! Whelp, over the weekend, I computed that info for every school in the dataset, and just stored a CSV for every school in an S3 instance (this was my ridiculous caching strategy lol). Spun up a frontend where you could select your school, and nicely visually go through every question, as well as print a pdf summary of the whole thing. On Monday morning tweeted at an ed journalist, and in a few days had a spread of me in the country's top newspaper, and people emailing about jobs "at my company."

This was the most rewarding project I've ever done, and I'm sad to say nothing has come close since. It cost me $0, produced a public good that I could see was being accessed from every state in the whole country, was technically interesting, and I saw it through from start to finish over the weekend!


Great work! Inspiring for me, as I am trying to build a better UI to consult the document “Base Nacional Comum Curricular” and help all schools to use it for their curriculum creation.

Is your site still up?


Sadly, no. I moved back to the US and then worked on other things, but still maintained it for a few years until the ENEM microdata started to get released super behind schedule, then I gave up on the whole thing. Was called dadosdoenem.org, and you probably may encounter a reference to it here or there somewhere online. Good times... insane to think it was over a decade ago.


Not coding, but my daughter Aelyth and I are a musical duo. Our first album (https://sidesister.bandcamp.com) took four years to complete thanks to COVID lockdowns and living in different cities.

On Thursday evening we rendezvoused at an equidistant AirBnB to sketch out our second album. It's now Sunday morning, Aelyth's just caught the train home because she's working today, but we have a concept, a title and ten songs for the new album!

There are admittedly another seven song ideas we've not had time to explore, but we've accomplished much more, much more quickly, than either of us thought possible. We've also committed to an overall musical style, plus boundaries on arrangements and instruments with the intention of keeping the production phase as concise as possible.


This is beautiful! Wow, my dearest congratulations and admiration :)


This is wonderful! You may be the first group to make me actually create a BandCamp login!


A minimalist MP3 player for my grandmother.

The whole user interface is a single physical button on her desk :

- ON : indefinitely play all MP3 files randomly

- OFF : stop playing

The longest task was to find her favourite pieces of music from my aunts and uncles.

https://github.com/remipch/radio_colette


Fantastic :D this is what personalized tech mean! Not some privacy invasive, data harvesting, adware service...


Thank you.

I had fun making this little toy project, I felt like a software artisan assembling some simple existing pieces of hardware and software.

It's a refreshing change from complex professional projects that take months to complete.

And Mamie Colette loves it too !


What did you do for the enclosure/button?


That’s cute!


iPod Shuffle without copy files

EDIT: wait, after take a look at the repo you do remake iPod Shuffle


Yes, it's close to an iPod Shuffle but my grandmother cannot use an iPod Shuffle, it's too complicated for her with 5 (too small) buttons.


Love it! Well done!


This is so sweet!!


We had a situation here in Australia where there wasn't an open source way to verify the outcome of Federal senate elections. The algorithm is slightly complicated, mostly because it's set up so that it's possible to count it manually as it was devised prior to computerisation of the voting system.

In 2013 this became important: in Western Australia, we had a very close senate election. There was one critical exclusion in the count where just 14 votes determined the outcome between two candidates. Obviously the accuracy of the counting software was key; it actually crashed when they were doing the count. They restarted it, but that shook the confidence of a couple of people I knew, and so I decided to write my own software to verify the count. I knocked it up in two all-nighters: https://github.com/grahame/dividebatur

Of course, I/we were fortunate that the electoral commission was forward-thinking enough to have published the data required to fully reproduce the count.

Some open government folks later on used the existence of my software to try and get the electoral commission to release their software system under Freedom of Information laws, so that it could be verified. I was quite amused when the commission alleged there was no way I'd done it in two nights. I had; but of course, what I had was a Python implementation of the count, not a fully-fledged electoral management system like they had.

Later on in 2017-18 we had a constitutional crisis[0], as various senators were found to hold foreign citizenship and thus be ineligible to hold office. Those ineligible senators were replaced by running a count-back of the vote, with them excluded. I happened to be the only person who had a system that could work out the results ahead of the electoral commission, so I had quite an exciting few weeks providing the media with predictions on who would take over the various seats that were lost.

Now there are better and more robust systems that have followed mine, but I must say I was quite happy with this two-day hack!

[0] https://en.wikipedia.org/wiki/2017%E2%80%9318_Australian_par...


Congrats on your efforts to sure up democracy! :)

Have you done anything like this professionally?


A simple game I posted here before [1].

I think it’s rather hard to finish a project in under one weekend. And we tend to easily say “I did it over the weekend” but mean “I had something working after one weekend”. Especially if the weekend is not one where you spend 48 hours in front of the computer (counting Friday evening in). So, I was quite proud to get it finished in one weekend under normal conditions.

[1] https://reach-100.com


I started and when a grasped the concept I immediately closed the page and walked away haha. I foresaw myself spending hours and hours trying to finish this game. It is like 2048 but harder.


2 days later, I just finished it. I'm finally free. Let this be a warning to future readers.


Great game! thanks for sharing


Thank you!


93 is my best score so far


My parter and I made a fun erotic story generator called Smitten (https://smittenstories.com ) during the valentine's day weekend. It's a simple nextjs app that utilizes Mixtral to create kinky/erotic short stories based on your inputs on characters/setting/action, and you can be as explicit as you want to be.

It started as me joking about how something like this would make a cool nerdy valentine gift, which then got both of us excited to work on it together. We posted on reddit during V day, and so far 170k+ stories generated! We haven't monetized it - so far it has been supported by small donation from a few users who use it regularly.


I needed to test the impact of a product we were developing on the air temperature distribution of a room (it really is warmer at the ceiling) so over the course of a weekend I strung up 27 OneWire temperature sensors in 9 strings of 3 from the ceiling of my living room and wrote a script running on an mBed microcontroller (like an Arduino) that would poll the OneWire bus every 30 seconds and send the responses back to my laptop which would then record the data in a CSV for me to graph once the test was done. This also required me to make a OneWire library from the OneWire spec as back then there was no public implementation for running on an mBed.

This test data formed the backbone of that company for the better part of a decade as it clearly showed when our product was running the temperature at the ceiling (across the whole room) reduced by 2degC and at the mid point of the room (head when sat in a sofa height) it rose by 2degC.

Our product acted as a destratifier and the test rig to prove it took me from Friday evening to Sunday night to make as I was working elsewhere at the time.


That's a cool idea, I guess it was maybe ds18b20 you used?

I'm curious if a very low resolution thermal imager such as Grideye could act in a similar fashion if you scanned the room using servos (https://www.adafruit.com/product/3538 is an example of a breakout board). Not sure of the accuracy though of such sensors for measuring temperature.

Edit: Just noticed they have "an accuracy of +- 2.5°C" so not good enough I guess, whereas ds18b20 claims 0.5C.


> ds18b20

Yes that's the one. I couldn't remember/be bothered to check

Thermal camera would only work if there was a surface to get the temperature of, we needed to know the temperature of the air in the middle of the room rather than the walls etc.

We did think about hanging ping pong balls on string like the sensors I hung but then yes, accuracy becomes an issue compared to the ds18b20.

Also this was in 2011 so I don't think we had the same variety of embedded device compatible stuff available and a proper thermal camera was out of our budget.

Fun side note, I brought the test rig back to life a few months ago for fun, found the OneWire lib code I wrote, copied into the Arduino project (mBed was long gone) and it worked with about 2 minutes of tweaking. That's 13 year old code up and running like no time had passed ... I can't even imagine the pain of bringing back a 13 year old web project!


It was called "Take Me Warmer." Basically, you entered in your ZIP code and a desired temperature, and it told you the closest ZIP whose forecasted high for the day was at least that temperature.

So, if you were in NYC in January and wanted to find out the closest location that was at least 72 degrees, it would spit out locations that met that criteria.

(There was also a companion app, "Take Me Cooler," that did the reverse.)

Required a one-time download of ZIP/coordinate data and daily downloads from a weather API. Figured out how to calculate the distances, and most of the rest was just stitching it all together.


I'm a meteorologist. Feel like sharing?


The sands of time have not been good to my poor Facebook app.


Last year, my wife and I were planning a 12 day trip and I was struggling with Google Docs moving days around while we planned our final route.

Told her to give me 2 days and ended up making a small app to help us plan our trip; the first version was built over New Years weekend:

https://turas.app

Kept working on it and it was good enough to share to Reddit 6 days later [0]. Got a good number of users and still keep it maintained/updated. Also have some videos showing the progress and major features over the last year [1]. It's been fun; my go-to project to tinker on when I feel bored.

Tried to monetize it, but didn't really find a market so just keep it free for the users that are on the platform :) The folks that come back to it tend to be obsessive planners (like my spouse).

[0] https://www.reddit.com/r/TravelHacks/comments/105s90u/i_buil...

[1] https://www.youtube.com/@turasapp/videos


Looks cool! Must try it out for our next trip coming up.

How did you land on the name Turas by the way? I was expecting an Irish connection as turas means 'trip' in Irish :)


    > How did you land on the name Turas by the way
Google Translate :) I wanted something short that meant "trip" or "travel".

Give it a shot! It's not for everyone (definitely not casual planners). But if you budget, plan schedules, and especially if you plan multi-day trips with other travelers, it's a great tool!


Ah cool :)

yeah will check it out — we're already in the 'Google Sheets' mode of trip planning so sounds like we're in the target market!


Nice! I personally use wanderlog and am a paying user (even though the free plan gives me everything I need), maybe you could take inspiration from their monetisation strategy?


Honestly don't know enough about their monetization strategy, but we did a user survey and -- at least the audience of users currently using Turas.app -- only a small % was interested in paying a subscription. So to make that scale, we'd have to invest heavily in marketing to get more users to make it sustainable.

Felt like it was better to just keep it free and ad-free :P


This is cool. I’m not a super planner, but I’d use it.


Thanks for the feedback!

Always open to input an ideas; still work on it a few weekends a month and make improvements (just added a timeline/history this past weekend).


This is so coooool!


A 15-minute-city analyser using OSM data. You gave it a list of everything you wanted to be close to (ie a school, restaurant, doctors office, food store etc.) and it would show you which parts of a given city had all those things with an N minute walk.


Fascist! How dare you suggest I shouldn't ever go further than 15 minutes to access necessary resources to live my life! It's my god given right to spend at least an hour in traffic to get to the doctors...

/s there is actually a whole movement of people in the UK that beleive the very idea of a 15 minute city is a conspiracy to limit their freedoms...


That’s hardly a fair characterization.

The problem is simply one of putting the cart before the horse. Most people simply can’t afford to live within a 15 minute walk of a doctor’s office and there is no real plan in place to fix that.


there is no real plan in place to fix that.

The plan is to identify where there are a lot of people living but there aren't any doctors offices within 15 minute walk, and then find the optimal places to open new doctors offices to cover as many people as possible that don't currently have a doctors office within a 15 minute walk.


Nobody’s objecting to just sound urban planning. The problem is when you don’t have it and use license plate readers or physical barricades as a band-aid.


license plate readers or physical barricades as a band-aid

What does any of that have to do with 15 minute cities?


In the UK they're called Low Traffic Neighbourhoods. It's what's at the very heart of the 15 minute city controversy.

Why would people complain about being able to walk to where they need to go? It's obviously being cut off from the places that they aren't able to walk to that people have a problem with. Deflecting from one by pretending it's about the other is a clear sign of bad faith.


Nobody is being cut off from anywhere - their route is being made longer in order to avoid residential areas - their journeys would be quicker if they walked they just don't want to...and that is the point highly polluting journeys are being disincentivised...if you absolutely must drive then you need to set off earlier this isn't an attack on people's civil liberties you have no right to drive somewhere..


Low traffic neighbourhoods and 15 minute cities are entirely different concepts, trying to solve different problems and that have very little to do with each other. You can easily have one without the other.

Deflecting from one by pretending it's about the other is a clear sign of bad faith

You know I kind of agree with you about this.


Exactly this! It all boils down to people being pissed that their car journey in London takes longer than it used to - nobody is actually being blocked from getting anywhere just their route is being changed - somehow this has been wrapped up in the 15 minute conspiracy...


Hey this sounds pretty cool! If this is public would you mind sharing a link?


Not the OP, but I've actually made something like that to help people figure out where to live in London based on the criteria they care about -- here it is https://findmyarea.co.uk/?search_type=areas

Would be great to see similar tools for other cities!


This is amazing! I am curious what algorithm is behind the scenes?

And how easy would it be to make this work for any city?


Thanks! It's a bit outdated now but I wrote up an explanation a while back that gives the general idea behind the scoring algorithm: https://findmyarea.co.uk/blog/how-findmyarea-works/

In principle it should be possible to do the same for any city. The hardest part is getting the data and massaging it into shape, which can be somewhat tedious. London is a fairly "easy" city for this due to the large amount of open data that's readily available from the ONS and the like.


This is really cool! Appreciate sharing this work and the explanation.

You mentioned that massaging the data into shape as one of the problems, which I think is possibly one of the best applications of LLMs in my opinion. Creating a pipeline of a data feed (still hard) into an LLM which outputs JSON with the fields of interest would be amazing.


The code never advanced beyond some hack scripts and a Jupyter notebook. Cleaning it up and perhaps making it into web app has been on my todo list for the past 2-3 years. Maybe this reminder will be the kick I need to actually do something about it.


Sorry I don't know how hackernews notifications work, didn't see this reply. But if you see this here's another reminder for you to clean this up into a public demo :)


Over four decades ago, when I was in my pre-teens, my family had a TRS-80 Model 1 (or was it a 3?), and I created a simple game for it in BASIC. In the game, a maze-like wall of blocks would be built as you watched, each block one of the system's super-chunky monochrome pixels. When the wall became almost, but not quite, impassable, you'd hit the space bar to halt the construction and begin the next phase of the game.

In this phase, you had to use cursor keys to move your character, again, a super chunky pixel, from the bottom of the screen, through the maze-like wall, to the top of the screen. If you reached the top, you won the game and were awarded a score equal to the number of blocks placed in the wall, minus your number of steps.

What made the game surprisingly fun was the tension you felt when the wall was being built. If you pressed the spacebar too soon, the wall would be too easy and your score would be low. But if you waited a little too long, the wall will be impassable and you'd lose. No points.

This dynamic was especially fun when multiple people played in sequence against one another, trying to get the high score.

Anyway, I remember that game took a weekend to write when I was a kid.

I also remember that my father, for some reason, really liked that game. He would comment for years after about how much he liked it and would like to play it again. But we no longer had that old TRS-80.

Fast forward to 2023. As a Christmas present for my dad, I recreated the game in a web browser. Again, it took about a weekend's worth of on and off work.

He was surprised and delighted by this gift. Over the next few weeks he'd send me the occasional email proclaiming his new high score.

Anyway, the whole thing runs client side, so if you want to experience 45 year old gaming, here you go:

https://blog.moertel.com/wall_of_denial/

Scores over 3200 are considered pretty good.

P.S. Although the laughably bad on-screen instructions don't say so, you can play the game on a phone. Move your character by clicking the top, left, bottom, or right of the game screen.


Brilliant game dynamic, and it’s so elegant that the human must solve the maze. The computer never does anything “heavy”!


Wow, that is really fun!

Thanks for sharing, and it is a touching present for a dad :)


I wrote the British Placename Mapper (https://placenames.rtwilson.com/) last weekend, and it got a bit of traction on Twitter here in Britain over the last week.

It lets you search for parts of British place names, and will plot the places that match on an interactive map, so you can search for places that start with 'great' or end with 'burgh' or contain 'sea' (or you can use regexes for more complex stuff). People have found some cool patterns with it.


Awesome project. One of my favourites is places ending "-wich" which are very few and scattered throughout non-Danelaw England


Wow, this is a great idea and really fun to look at.


I sell apps for a living - I have a few iOS apps and a macOS app. Each of them uses a different way of billing (app store, revenuecat, lemonsqueezy etc), which makes it a PITA to check the total revenue (which I need to do everyday because I am so obsessed with it).

So, I recently converted my old phone into a 24/7 live sales dashboard[1] which consolidates the revenue from each service. It resembles a retro device inspired by the pip boy and was finished within a day!

[1] https://twitter.com/kushsolitary/status/1777306909344715158


I have the same problem and wished there was a service to aggregate this


So cool, nice job.


Was out to dinner with the family, and my kids were enthralled with the "word search" that was on the kid's menu. I thought it'd be cool to build a custom word search generator - given an arbitrary list of words, it'd spit out a grid containing them. The part that made it fun was trying to figure out a layout for an arbitrary list of words that would be as compact as reasonably possible. I was able to get something working in just a couple of hours, and my kids loved being able to do word searches with stuff that was relevant to them, like names of family members. Of course, there are tons of similar generators freely available online, but it was very satisfying to figure it out for myself and come up with something that the kids enjoyed.


I made HNRelevant, a web extension for HN (https://github.com/imdj/HNRelevant).

It shows related discussions for each submission page. Many times, I found myself intrigued by interesting discussions which left me hungry for more and I'd go down a rabbit hole, or maybe it was promising but didn't get enough attention and I'd need to check if there were any related discussions in the past about the same subject.

I found that even though HN is a news aggregator, many discussions on HN are timeless (just like this here).

I'm proud of it and find the experience and flow to be very enjoyable. It also helps me find great stories that I might not have stumbled across.


I just installed HN relevant. It works pretty well!


This is cool, thank you very much for providing this for Firefox as a an add on


http://github.com/piku/piku was by far my best example of such a thing. I was fed up with how hard it was to deploy and iterate applications quickly, and the first version was done in a weekend.

In short, it's a minimal Heroku clone that started out as ~500 lines of Python run by a custom SSH config.

It has paid for itself several times over, and is still something I use daily (it runs all my little API endpoints, Node-RED instances, Python services, you name it.


This looks great!


My team's go-to site for ice-breaking questions began recycling questions, so I built a no-track open source icebreaker that weekend.

Feel free to use and abuse it for your own social icebreaking needs. You can use it to break the ice at work, in a bar, at your church social, on the bus, in jail, wherever.

Site: https://rendall.github.io/icebreakers/

Repo: https://github.com/rendall/icebreakers


Created the first version of an app that took large long PDFs of train driver/conductor schedules in my country and presented them in an nice way in an app. The previous sources were all hard to navigate and had ads. I spent a weekend parsing PDFs into SQLite, and shipped the app with a preloaded database. Then kept updating and tweaking and added some fun intersections of the data ("who else is operating this train").

8 years later my source of data stopped providing data because of data protection concerns and the company introduced their own app/functionality for the same. Never earned me a dime directly but did get me my next job - it was a great sample for the interview


I wanted to know the most used Go dependencies (not most starred or most downloaded, but most depended upon), so I made a scraper to get the go.mod from a few hundreds open source project on GitHub, and got the go.mod of each of their dependencies recursively. I stored this in a neo4j (first time I had the opportunity to use a graph database!) and got my answer (stretchr/testify is the most used dependency in the open source ecosystem by a large margin).

It’s not "finished" because I still have tons of ideas for improvements, and still want to make a blog post explaining how and why I did it, and show the results in an interactive page (and also share the database with everyone).


Interesting, but I do wonder what the result would be if you excluded _test.go ?


The second most used was google/go-cmp but I also think it’s used mostly in tests. It’s a bit annoying that test dependencies are not listed separately in go.mod files. After that there was a bunch of dependencies related to AWS SDK, GCP SDK and Kubernetes.


At work, most of our deployment pipelines are something along the lines of "get some credentials, call a remote API and wait for it to say it's done". Occasionally, they also have "download this large binary from S3 and upload it somewhere else". Because these are in our CI, they are blocking steps that consume our builder resources.

We use Buildkite, so I changed their agent to run as lambda function, and used their eventbridge integration to trigger the lambdas. We saved about 15% of our CI costs by not using our 32 core build machines to call ecs wait-services, and freed up said machines to be able to run more often.


I've built a first version of Logdy[1] over the weekend. Since then I have been developing it and it's getting traction and attention.

Logdy is a real-time logs browser that is meant to replace viewing logs in a terminal during development stage. I was tired of browsing and searching through infinite stream of non-searchable json whereas having such a great tool as DataDog on production. I've felt that development process lacks this kind of tool and decided to scratch my own itch.

[1] https://logdy.dev


This is awesome! I can't wait to try it out, really nice work.


Thanks, glad you like it! Let me know how it goes peter(at)logdy.dev


Back in 2019 I was working on a poorly managed project, so one Friday evening I started making a tool to help me with the work. It was an inventory of the ~ 100 environments where I had to do deployments and configuration changes. It took a few hours to do that and it served me well. 5 years later this personal productivity tool is used by half of the department as a configuration management system and it is dangerously close to become a critical component - there were more weekends where I added functionality, one at a time. Tricky part is this is a personal productivity tool, so officially it does not exist in the enterprise architecture diagrams and it is not officially supported; it does not even have a repo in the corporate Github, but in a separate Gitea instance.


With three friends, we built and launched a SaaS product over a weekend and live-streamed ourselves doing it[0]: https://feedback.fish

It was a ton of fun, about 1,000 people tuned in over the course of those ~60 hours. The product was acquired about a year later.

[0]: https://productweekend.live


I slapped together a little shareable sprint calendar tool, since I was constantly finding myself having to click too many times in other tools to get what should be a simple at-a-glance overview. I now use it almost every day, during team or stakeholder chats at work.

My team runs with: https://sprintcalendar.com/3-week-sprints/start-2020-12-03/r...

I've only tweaked it a bit since then, after sharing it and getting some feedback from others who found it useful.


I wonder what it is with calendars.

This weekend I went looking for calendar widgets and after trying approximately 5 I couldn't find any where the UI felt intuitive.

I made my own instead. Maybe I'll strip out the internal stuff and share it and it can be yet another unintuitive calendar widget for the next person.


A media list. It is just a list of movies and mp3s with their metadata (id3 tags) and hash values. The output is just a html table that allows sorting and filtering with a hyperlink to play the media in the browser. Convenient for playing home media on the phone.


I did something similar, with a Play button that calls a PHP script that tells a Kodi instance to play the media, using JSON-RPC: https://kodi.wiki/view/JSON-RPC_API


This weekend I mostly upgraded it to play the mp3 files using the HTML audio tag, which provides both a player and playlist in HTML form. This is the only rational way I have found to play MP3 files on my IPhone. Before coming to this conclusion I tried the following:

* MP3 player apps from the app store suck. Most of them want up charge on everything or expect to stream music from some external source. I only found one that allowed accessing files by directory, as opposed to manually picking files one by one. WTF, I have over 4000 files.

* I tried writing a dynamic play list in HTML format using the input type files with the webkitdirectory attribute. Despite webkit in the name its not allowed in iOS.

* I couldn't just create a play list file and access it from SMB share. IPhone does support SMB file shares with a file preview feature, but that file preview feature does not execute JavaScript.

So instead I am running an SMB server which contains my media files, a web server which contains a symlink to the media files, and a pihole DNS server to create vanity local domains. The least level of restriction occurs when running in a web browser, under a domain accessed via DNS, with a prior formulated list of music. That domain can be a vanity domain name as the browser cannot tell the difference. That way the file list and html file are relative to each other under the same domain (which passes the audioContext security check in the browser), not downloaded to the phone, and still playable without Apple phone restrictions.


I had access to a Windows server VM at a previous job that was commissioned for a piece of work. The actual work was then stopped, but the IT folks never decommissioned the VM so I had a nice little server on the local network to play around with. It didn't have Internet access so I was somewhat limited in what I could do with it.

I ended up building a hacky internal IIS/PHP web app (I guess these days one would call it an SPA) that hooked into the company's Active Directory that showed a nice little page of people in our "business unit", with their names, pictures, employee grade (analyst/consultant/manager etc.) and subteam -- basically any bit of info I could get from a user's Active Directory profile.

It used Datatables (https://datatables.net/) for a simple text-based table view and Isotope (https://isotope.metafizzy.co/) for a card-based grid view that you could quickly toggle between.

I called it the "Book of Faces" and announced it to my team at a team social event, and it took off massively beause it was way more performant, simpler, and just much less painful to use than using the clunky corporate intranet app to check user profiles.

Word spread outside of my team and I started getting requests from various other teams to set up similar pages for them as well, which I was only too happy to oblige. This spurred me on to refactor it to make it as simple as possible to set up new team pages.

This silly thing boosted my profile a ridiculous amount within the company, just because I'd left a small footer "emailto" link that people could use to get in touch with suggestions/bugs.

I maintained it as a side project and surreptitious internal app for about 6 years until I left the org, after which I handed it over to someone else. Last I heard though, internal IT finally caught wind of it, and in what I suppose is a "progressive for its kind" response, spoke to the users of the various pages and built a corporate-ised version of the same thing.

A decade-plus of working in tech and data, and that IIS-PHP-JS monstrosity is still one of the bits of work I'm most proud of!


Cool project and thanks for sharing the isotope library, I'll be using that in my next project :)


That sounds like something that could just as easily get you into a heated political kerfuffle. You got lucky.


I was still relatively new there -- I'd likely only have thought of this potential downside a couple of years into the job!


Game jams, when I was younger and had the energy to do a long weekend of coding after a week of work.

Ludum Dare was particularly good fun in its early years (early-mid 2000s), when it was a fairly small community, when people were coding from-scratch, before Unity became an option and the event grew into something a lot bigger.

Game jam coding is different to 'real' game dev, as the time pressure encurages you to just hack away freely and creatively, not spend too much time thinking about building reusable systems or tools, and you can discard the codebase at the end of the weekend.

These days, small functional 3D printing projects can be quite satisfying. Going from a sketch to a simple CAD model to a first draft print, iterating the design a couple of times, and ending up with a simple-but-useful physical object, learning a bit more Fusion 360 in the process.


I had a good run doing LD in the 2010s. Half of all entries were unity last time I was in. The others were mostly unreal or something else. I don't think godot was big yet

I remember the big SPA rework of the website that seemed like overkill. Then a couple people bitched me out for preparing base code, so I stopped. How dare I try to get myself halfway to where the unity devs started, I guess.


https://github.com/checkly/headless-recorder

- got ~15k GitHub stars.

- AWS copied it.

- We deprecated it as better stuff came on the market with @playwright/test's codegen.

But I did code the initial version in a weekend. Was called Puppeteer Recorder then.


Congrats! I remember when this came out. It was very cool.

What did AWS do?


Have a look here. It spawned quite a thing! https://news.ycombinator.com/item?id=24799660


Wow! Thanks. I’m so glad I moved away from OSS licenses, to stop these vultures / parasites.


Threw together a toothbrush timer for my kids. Just used the svelte repl:

https://svelte.dev/repl/5a7f676868044bbba2ff3c7a64062066?ver...

On mobile you’ll need to kit the “output” button


You should probably set the language of the SpeechSynthesis to english, currently the browser seems to use the system language which leads to bad output with the english text.


I had no idea that was even an option. Thanks for the heads up!


https://github.com/turol/valoserveri

It's for controlling DMX colored lights over network. It takes UDP packets (and later Websocket messages) and turns them into DMX protocol packets which get sent over USB serial adapter to the DMX wire. It's a rewrite of a previous node.js version which had bitrotted.

I think I made the MVP in about 7 hours during one saturday afternoon. Finishing it up took a few weeks more of evenings.


  // put some magic into packet
Ha, great.


This looks really interesting and I use DMX lighting.


I installed a vpn on my AppleTV and couldn’t tell if it was actually working/secure. So I created my first ever swift app, for TVOS (AppleTV).

The app checks if your vpn is active, and tells you your public ip and geo location on a map (also deployed a small service on fly.io to ping/detect this).

Using copilot/chatgtp it was a doddle.

Of course Apple refused to put it in the App Store because it doesn’t have enough features. Even though adding unnecessary bloat to the app would be against their own design philosophy.


How did you use copilot given that tvOS uses Xcode?



Probably opened a browser tab, started asking questions about how to code the thing. :)


Write the code in another text editor and only use xcode to compile?


Building a ramp for my mother's dog - who can't use the stairs - to go up and down the stairs in our backyard. Both V1 and V2 took a weekend, but V1 was disassembled to use for some other stupid thing in the backyard, and V2 is slightly better and more portable/storable for future dog visits.

I know it's a common trope among software developers, but working with wood and making something physical just feels immensely satisfying.


I needed a tool to share dev mobile builds (IPA and Apk), there are few options out there but they all are very outdated, so I created AppSend [1]

Free, unlimited, no registration, no ads.

[1] https://appsend.dev


I built a website that takes online recipe pages and just returns the main recipe in plain text. https://www.plainoldrecipe.com


I am just starting out trying to learn iOS development and last weekend I made a small tally/counter app. All it does is adds or subtracts 1, but dammit if I'm not excited about it.


Well done! Keep at it slowly slowly


I was teaching myself Rust and got tired of doing Project Euler problems. I've always wanted a program that made it easier to parse arguments in shell scripts. Something like Python's ArgParse. So I wrote it.

https://github.com/Shaftway/argparse

Initial implementation took about a weekend. I've tweaked and added features and documentation since then. I've only tested it in Bash and I'd love feature suggestions or a critique of the code from better Rustaceans than me. I've been using it in a couple scripts and have really appreciated the functionality.

My Hello World demo is:

    #!/usr/bin/env bash
    eval "$(argparse --string name -- "$@")";
    echo "Hello $NAME"


I was reading "50 years of text games", and one game (Hunt The Wumpus) piqued my interest so I decided to reimplement it in go, based only on the description of the book, initial (working) commit took a few hours over the weekend, then I fell down a rabbit hole when I found out the original source code, and description of its sequels, so I took a few more weekend to implement that then even more features. Probably nobody except a friend played it but for once it felt good developing something outside of work or the advent of code. https://github.com/Koumbaya/wumpus


One that springs to mind is one I "started" on Friday, but other people finished on Saturday[1].

Started in quotes because my contribution was combining an existing project that was about to fail due to capacity issues with the infinite botnet of AWS spot instances and the power of Hacker News.

It's more than a decade ago now, but I think it's a good example of a project with a simple goal that enabled people to get involved and feel like they were doing something useful.

1: http://rossduggan.ie/blog/code/archiveteam-yahoo-messages-fo...


Two years ago, on the height of Wordle's popularity I wanted to play a custom word against my colleague and ended up sending the emojis manually in the chat to each of their guesses.

That was a Friday and the same evening I had the idea to make it into one of the many derivatives and finished the same night around 3am.

Things went a bit popular from there and it wasn't long before I was contacted by companies that wanted their own branded version. That meant I had a potential product on my hand and started selling subscriptions to managed branded puzzle sites.

Fast-forward a year and I sold the weekend project for a nice sum. :)


I wrote an asteroids clone on the Pico8 fantasy console. I was surprised how fast it was to get a playable game up and running with it.


Making a fake AirPrint printer.

I have a Brother printer that has two printer trays, one manual tray (that takes variable sized paper) and a A4 tray. However, when printing from iOS, it doesn't have the full print preset dialog and it is impossible to print from the manual tray, nor is there a way to tell it I want print A6. Of course I insist being able to print A6 whenever, wherever I want with AirPrint and accept no substitute.

So I started with the Bonjour printing spec (https://developer.apple.com/bonjour/printing-specification/b...), and dns-sd on macbook to figure out how AirPrint actually discovers printer and what makes it tick. The entire thing is built on mDNS which is basically DNS instead of using a DNS resolver, it sends the query via multicast DNS. If someone on the network wants to find an AirPrint printer, then it queries via mDNS _ipp._tcp.

e.g. $ dns-sd -Z _ipp._tcp With shows the PTR, SRV and TXT records. The TXT records are based on the Bonjour Printing Spec which list out which fields so it knows the type of the printer and driver to use and it uses the SRV port to find the ipp port so it can contact the printer.

Further investigation using rvictl (iOS packet sniffing) showed the IPP traffic, which is really http API. It is via this API that iOS determines what paper is supported from what tray.

The path is then clear: create my own mDNS service that returns a printer on my own port, this IPP port acts as a reverse proxy to the real printer's IPP port, but it modifies the "media-col-ready" attribute to make iOS think A6 is loaded into the manual try.

It was extremely painful, but it was done.

There were many pitfalls along the way:

* iOS expecting the mDNS to resolve in a certain way, which Hashicorp's library didn't support, this necessitated forking the library and fixing the resolver.

* iOS expecting not only _ipp._tcp but also requiring _universal._sub. (https://support.apple.com/en-us/guide/deployment/dep3b4cf515...) in mDNS, which further complicated the implementation and took time to figure out how it worked. Needed to test with `dns-sd -Z _ipp._tcp,universal`

* iOS detecting the printer via mDNS but when clicking on it, it says it's not available. It is because it insists that ipp has to be on port 631, and refuses to accept (unlike MacOS) ipp on any other port


This is some amazing yak shavings. Noted for future reference. I guess a github link is too much to ask? :-)



Thanks!


How did you solve that last (expected port) problem?

(I've run up against that elsewhere, and couldn't get over the hump for iOS.)


You can run in a container with bridged networking so it gets its own IP from your lan.


Not that impressive but I personally liked it. Since Telegram isn't accessible without VPN or Proxy in my country, i made a flutter app that connects to an API. The API itself uses Telegram API to get and send messages. So i made a Telegram that doesn't need VPN. But it was so simple (Only for one group and only text messages). Anyway I enjoyed the progress and the result. Oh and a question if you can help me. I used streaming FastAPI for the API and used dart:io in flutter to listen for the new messages and put them in the app. Do you suggest any better way to fetch new messages? Like WebSocket or idk anything.


When thinking about historical events, I like to see a visual timeline. I built WorldInTimelines [1] when I was first playing with GPT.

[1] https://worldintimelines.com


We have a WhatsApp group where we share music recommendations with each other. It's grown quite a bit now and it's gotten hard to keep up. Also new members missed everything that came before. So I set out to solve this problem and have some fun last week.

I decided to write a shell script that does the following: - Parses chat export file and extracts all the Spotify URLs. - Removes duplicates - Authenticates w/ Spotify API - Fetches Ids of tracks already in playlist - Creates a difference list of missing tracks - Adds those to the playlist

And that's that.



Last weekend, I decided to take a step to learn and build things, it is also a way to learn about LLM, in which I ended built InkChatGPT. A small and simple RAG LLM app that with tons of learning resources that I was afraid to start to learn with.

I've been diving into the world of Large Language Models (LLMs), particularly the Retrieval Augmented Generation (RAG) approach. As a learning project, I built InkChatGPT, an AI agent that can assist with learning from multiple documents through a chat interface, inspired by projects like ChatPDF.

Under the hood, I used LangChain as the LLM framework to simplify the backend, Streamlit for the front-end UI and deployment, and OpenAI's `gpt-3.5-turbo` model. For generating embeddings for document chunking, I leveraged HuggingFace's `all-MiniLM-L6-v2` model.

Coming from a mobile development background, delving into ML, LLMs, prompt tuning, and various techniques has been an eye-opening experience. While the wealth of information can be overwhelming, building projects like InkChatGPT has been an incredible learning journey.

I'd love to hear your thoughts and experiences with LLMs and RAG systems. Feel free to check out the InkChatGPT repo [1] and share your feedback.

[1] https://github.com/vinhnx/InkChatGPT


My grandmother's primary method of communication is a cheap Android tablet. It unfortunately includes a preinstalled SMS app that upsells a VoIP SMS service. My grandmother gets extremely frustrated by accidently clicking the message icon and opening an upsell page. There's no way to uninstall the VoIP app.

So instead of giving up and buying a new tablet or paying for an unnecessary service, I hacked together a way to open WhatsApp instead.

https://github.com/Kiran-Rao/openwhatsapp


Deactivating the app was impossible too? You can often do that with preinstalled Android junk which is installed on the system partition.

Another often possible solution is installing Lineage.


Unfortunately, deactivating wasn't allowed (or at least wasn't easy) by the OEM's ROM. There may be an adb command, but it wasn't worth the effort.

I considered a custom ROM, but:

* My grandmother is averse to all change

* Transferring stuff (apps, settings, pictures) over would have been a pain

* It's a lot easier to support a single utility app than support an entire OS


I created a website about dynamic energy pricing in about 8 hours. It ranked no. 1 quickly in my country and the only thing I’ve done since is update my comparison table and I’ve added affiliate links.


what's the website? Sounds cool


I built https://upfollow.app to help a product manager have a better relationship with the software engineers. It makes it easy to create calendar reminders to follow up on features and other requests that she is waiting on. This provides a little structure, allows delivery estimates to change, limits interruption/nagging, and still catches rabbit holes or distractions before they can prevent features getting put in front of users.


One of my favorite weekend projects was an autoclicker. I had (have?) an intellectual infatuation with incremental games, and just found them to be incredibly alluring. I already knew how to write an auto clicker in software, using either existing software, or hooking into processes with my own functions. But, I'd never done any hardware modification for something like this. I had an old mouse, and some hardware kits for arduino/raspberry pi, so I had a 555 timer, and a switch, and a soldering iron, and a drill. And that's all I really needed. I took apart the mouse. I did some calculations, and designed my timer circuit. I soldered the button onto the circuit to click the mouse. Then I tuned the resistors to get enough clicks per second that the particular game I was playing would register them all. Then, I drilled a hole into the mouse case to give me easy thumb access to the button.

It was glorious. I could just hold down the button, and watch numbers go brrr. Sure, I could have bought any number of mice to do it for me. But I wanted to do it, and it was fun, and I have something to show for it. Someday, I may even take it apart and add a rheostat so I can adjust the click frequency. It was a simple hardware project that helped jump start my hardware/firmware career.


I've never had the opportunity to write code for a compiler but it's something that's always been pretty interesting to me so I decided to write a little toy calculator:

calc("1 + 3 / 5")

It was a pretty fun project as you get to do some parsing/lexing, work out how to execute it (function ordering etc.) and then have lots of fun little avenues you can go down (brackets for specifying execution order, adding more functions, arbitrary precision maths etc.)


This brings me back to my uni days, where in a Programming Languages class we had to develop a project that used any topic covered in the semester, and I chose lexical tokenization thinking to myself "it can't be that hard, right?" and oh boy.

15 years later I still have nightmares about coding in that project, running late and failing class, and dropping out of uni.


It was actually couple of weeks ago, but a small project that took mostly just two days to put together and I'm pretty happy with how it turned out.

Notiflux (https://github.com/ikornaselur/notiflux): a small WebSocket broadcast server, the idea being that clients connect with WebSocket (such as a website) and then any source can send a POST request to the API to broadcast messages, allowing for real-time functionality from servers that don't support WebSockets, or you might have multiple sources that each might broadcast messages.

Auth is done by Notiflux having a public key and the sources have the corresponding private key, JWT tokens signed with the private key include topics and scope (subscribe or broadcast to the topics). Clients would auth with an API for example, get a JWT with maybe a 10 second expiry, use it to subscribe to the topics that the API would then broadcast to through Notiflux.

It was an excuse as well to play with WebSocket in Rust and learn a little bit about the Actor Pattern.

If I would continue I'd want to explore how well it scales, how much traffic it could handle and look into horizontal scaling, but I feel like it's complete enough as a toy project.


I made https://gpupricecompare.com to compare GPU prices from eBay over the weekend and it was an interesting project because it seemed relatively simple upfront, but dealing with titles was a bit tricky. The only solution (I found at least) was to pull in some NLP packages to filter out and match GPUs, get the relevant models, etc. Was a great exercise for some non-LLM NLP.


Maybe add a filter for “no video” or “as is” since it usually means it’s got issues. But love the project.


I built OnlineOrNot's cron job monitoring service in a weekend (at least the initial version).

Since I already had a scheduler job running for regular uptime checks, I wrote an SQL query to find jobs that hadn't reported in the expected time.

On the other side, I built a quick endpoint for my public API for cron jobs to curl upon completion.

After that, I just needed to put up a UI, and it was complete (until I decided to productionize it by splitting it into its own, highly replicated service)


I've not cleaned it up enough to push yet, but I packaged up an open source image recognition model (https://github.com/mnahkies/recognize-anything-api) and then wrote a script to crawl my photo library, run inference over each image and then write the results into the tag tables of digikams sqlite database (https://www.digikam.org/)

One thing I was fairly proud of was how scrappy the script was - I wrote it in typescript for the familiarity with the sqlite driver, but I used find and curl to actually do the crawling and API submission.

Is it hard to do that in pure typescript/node? No, but I was in a "how can I validate if this is even an interesting thing to be doing mode" and execing out to these tools was a way to get there slightly faster.

I've found that this attitude has been a great way to make weekend projects more fun and feel less like work.

Getting to some kind of tangible value sooner has also made easier to not lose interest halfway through and has been yielding me more semi-complete weekend projects (the word semi is doing a lot of work here tbf, but it's all relative)


September 22 - September 23, 2021: puppetromium - "World's simplest browser" - a single file, "remote browser", using MJPEG streamed viewport, CSS breakpoint sizing hack, image-button form control to capture click coordinates to server, and NO client-side JavaScript.^0

I wanted to see if I could make a JavaScript-less "remote browser" that essentially worked. Mainly because there was so much JavaScript in the client for my actual, working, remote browser.

I found out: it is possible. But it ain't pretty! Hahaha. Some pretty cool hacks in there tho. I'm especially proud of the CSS code for probing the viewport size, and how is synthesizes a bunch of cool, slightly fringe / retro web platform techniques like: <input type=image>, Motion JPEG, pinging a sizing URL based on CSS @media query.

I also wanted to use puppeteer, as I didn't even use it 1 bit for my actual remote browser, and puppeteer was such a big thing, I wanted to use it! Haha :)

[0]: https://github.com/dosyago/puppetromium/commits/main/src/ind...


A game that was a spin on the air hockey game that exist in arcade halls. I called it wind hockey [1]. The idea was also inspired by Avatar the Last Airbender.

I am not sure if I have the code anymore. I do vaguely remember that I have the executable somewhere. It was made with Unity3D and took around 40 hours

[1] https://m.youtube.com/watch?v=qTIZ-_UFXqQ&t=1s


Ecobee Overview - https://ecobeeoverview.com/

I was diagnosing HVAC issues and was frustrated about the visualization of the data with existing tools. I wanted a single screen with all my thermostats, the mode they are operating in, set point, current temp, with synchronized y-axes.

This app is completely stateless which I think is cool from a privacy and ops perspective.


I build a youtube video downloader. I was under the impression that figuring this out would be extremely difficult but with ressources online, it was surprisingly easy. I got a basic downloader down in less than [200 lines](https://gist.github.com/aabiji/c65254af440b1bb53149b2d6a9faf...)!


When I was looking for a new tech job, I got sick of trying to figure out which Leetcode Pattern I was gonna practice so I just threw all of them on a list and gave me one a day.

The reason it only gives you one random thing a day is cause I didn’t wanna try “re-roll” the pattern I was gonna practice to give me something easier.

https://www.pickoneatrandom.com/


Small browser and Linux desktop extension to open links on the current virtual desktop. https://github.com/Janhouse/tab-in-workspace

It's a small quality of life improvement but I wonder why this does not exist out of the box.

I could probably make it a bit easier to set up, but it would then require another weekend. :))


A visualizer and analytics app for air traffic data: https://adsb.exposed/ Although it is based on another app, also made over a weekend: https://reversedns.space/

But then it took a few months before I managed to write README for it.


I made TextShot [1] in a weekend. It’s a free utility that allows you to copy text on screen that you otherwise can’t copy (from an image or a video), with a simple key command.

[1] https://apps.apple.com/us/app/textshot/id6444068061


I think my favourite weekend project I've built was an image transformer plugin for Craft CMS. The popular (and only) free image plugin had been deprecated and the author was only going to continue supporting their paid version so I hacked together an Imgix-inspired plugin called Jitter[0] over the weekend. It's not very popular but I like it and use it frequently.

While it's not a very interesting project it's my favourite because of what happened after I published it. While I was at work I noticed the plugin was installed on one of our new client's websites. I went to my boss and asked him if he installed the plugin and what he thought about it. He said he did and it was better than <old plugin>. AFAIK they're still using it years later and I don't think they ever realized it's my plugin.

[0]: https://github.com/codewithkyle/craft-jitter


I built a tool that generates and renews letsencrypt certs, automatically verifies via dns, and uploads to your destination (for example, a load balancer.)

https://github.com/poundifdef/certmaster

I want to turn it into a service but haven’t gotten any feedback that people want it!


I may use this! Thanks for sharing


I think it took me less than a day to ideate on and put Teeny (https://github.com/yakkomajuri/teeny) together, which is the static site generator that's powered my website for almost three years. I never touched the code again after that.


The other day I noticed shipitsquirrel.com was available, so I spent a couple evenings pair programming with ChatGPT to make a fun little Missile Command style game where you help Ship It Squirrel ship by blowing up distractions ;)

https://shipitsquirrel.com


I created SynopsisMD (https://synopsismd.com) to make my partner's job in healthcare a bit easier. Every month, when she meets up with her colleagues, I hear them share their work struggles. That's what motivated me to help.


Scraping 6 million HN posts (out of a total of 40 million, 6M = some ~3 years of posts) and embedding them with openAI's text embedding models.

Making these full-text and fuzzy searchable with Postgres+pgvector, using reciprocal rank fusion to merge the two rankings. Very rapid query times on a 6 year old intel NUC; a kind of hn.algolia.com search only with added semantic search, not just text search.

Reducing the dimensionality for average per-user and per-submissoon vectors to 3D with UMAP, to see where my posts are located, in "hn discussion space". (expectedly, some users such occupy very specific clusters in discussion-space. There's a "dang telling you to please keep it intellectually stimulating" corner)

I should slap a frontend on the latter, host it somewhere not inside my own house and submit it, honestly.


Having this natively here would be pretty useful. There's so much good stuff that "disappears" in the barrage of submissions, that can be hard to surface via simplistic search.


Interesting, what would the ideal user interface look like, according to you? As a user, how would you like to interact with a system like this?


I'd most definitely want it to mainly link to the source comments/threads, no regurgitation necessary.

UI could be anything really as I'm not picky, self-hosted would be a huge plus.

Example queries could look like: "(what's a) setup for X?" (where X might be "on-prem ETL" for instance), "troubleshooting Y", "books about Z" or "obscure web finds" (this one's tricky because it's subjective and perhaps implicit). I guess many more inspirations can be found in the Ask section. Pretty sure a lot of questions get repeated.

I'd already be happy if the results were "ontologically obvious" close to my query, effectively searching phrases modulo synonyms.

With search as it currently is, I have to rephrase my query because I can't conjure the exact wording to exclude the many false positives (or include any true positives ;)), usually resorting to site: queries on other search engines or giving up.

Also, I should really have curated better myself these past years... HN is a cool place, but it, like other feed-like sites, surely has a short memory.

Similarly, imagine the info that is stored in Discord chat history, never to be retrieved again unless the right users come together at the right time and the info is repeated (as if we're back to oral history, except this time with perfect recordings).

Hope this helped somewhat, trying to keep it brief.


In the 1980s I got a lot of mileage out of the open source OPS5 expert system tool, porting it to my Xerox 1108 and eventually to the product ExperOPS5, and used it in house for prototyping.

My one weekend project: while my wife was out of town with the kids for a weekend, I manually converted about 4500 lines of Common Lisp code to MIT Scheme, and it worked after a few hours of debugging.

Another weekend project: I used my company’s time sharing system to write a very simple Chess program in FORTRAN in one weekend. It didn’t quite play a legal game, no en passant capture. Several months later when I purchased serial number 71 Apple II, I ported the code to Apple Basic, which only took a few hours. Apple distributed that little hack with their Apple II demo program cassette tape.


To learn Go, I made a small app that supports encrypting files with a public key where the keypair is generated from a password. Because I want my backups to be encrypted but it offends me to keep symmetric keys lying around. With this you can just generate a file containing the public key, stream your file through the app, and decrypt it later with just the password. It's very minimum viable product, but I'm confident that the crypto is done well.

https://github.com/TomatoCo/warren

(It wasn't exactly over a weekend but it only had two or three days of effort put into it, which I think meets the spirit.)


I made an add-on that syncs esports schedules to my Google calendar. The first iteration took me a weekend and the current iteration has over 100 users at https://tournacat.com/


The remote location of, driving to for physical verification, extraction, and processing of a copper ore vein for lapidary purposes. All remote work done Friday morning via ASTER and LANDSAT, 3 hour caravan in 4x4 and AWD vehicles through nasty sand and mountains to the chosen location to verify findings, immediate camp set up and extraction begins that night and through Saturday morning and afternoon, break camp and depart that evening, spend Sunday cutting and polishing to reveal some of the most gorgeous blue and green you've ever seen in a rock.

https://i.imgur.com/EA2QXMe.mp4


I learned the week before the project that the Raspberry Pi 1 I had initially found useless and kept in a drawer for years had a new streamlined OS called DietPi and a thriving community. I had also recently discovered Tail scale. In one weekend I installed DietPi, tail scale, and AdGuard and then had ad blocking on all my devices, including my phone when I was away from home.

The Pi 1 is now an integral part of my network and sent me down the rabbit hole of personal home servers. I have an Odroid running home assistant, a Pi4 now running services where the data doesn't matter, and a Synology running services where the data does matter.


Pure Todo[1].

It's a dead simple web todo list organizer with QR-Code based user auth, list-management, REST API and vanilla JS UI in a single PHP and about 10 css and js files. I wanted something simple with no frameworks that works on mobile and desktop for accessing it basically everywhere.

I chose PHP for backend, because it is simple to host. Intentionally I planned all in one single file, which turned out to be too complex, so I extracted at least the css and js :-)

[1]: https://github.com/sandreas/pure-todo


Not really a project, just a template of paper letter following french and italian typographic conventions with a qr for automatically import a vcard of the sender and another + a short URL to download a pdf copy of the same paper letter from a URL.

Ideally it's just a way to tell people "ok, we still use paper sometimes, but paper should been able to work with bits as well, so for instance any printed document should be offered with a way to retrieve and original one like a pdf, and if the document itself is signed the digital original should be digitally signed as well".

So far many countries in the world have started norms and some conventions to bridge the gap but no system is really widespread. Qr are widespread, URLs are well known stuff, vcard as well, so it's just a thing I've made because I have had to write a paper letter, I do like LaTeX and automation and I do dislike wasting time scanning things. Marginally since I bough a set of double windows envelopes well, the template much the envelope to print it quickly, new WE I'll made an envelope template since where I live (France) I discovered that beside send a pdf to local post service to get it printed and mailed I can also send something myself buying a pdf stamp to be printed on paper... As I said not really a project but, might count as a project I think :-)


Daily annoyance? Yes! The pre-roll ads on YouTube didn't get blocked anymore by my blockers of trust (Ghostery & uBlock Origin) so I decided to write my very first add-on for Firefox. I've never touched JavaScript or add-ons before - but with the help of ChatGPT I got it working over the weekend [1] and now watch my YouTube videos without any ads. (I also did a version for Chrome, still waiting for approval)

[1] https://addons.mozilla.org/firefox/addon/pureytv


I used to have a raspberry pi that was running on a schedule to play rain noise while I was sleeping. When I moved I took it down and didn't put it back up, but never liked how excessive it felt.

So I built a simpler version that doesn't have a schedule but runs on an RP2040 and generates brown noise:

https://github.com/bschwind/sleep-machine

Will eventually add some key switches to it so I can start/stop it more easily (currently just plug it into USB when I want sound) adjust volume, low-pass filter params, etc.


A survival guide for Catalan [0] people that want to understand Mallorquí [1].

https://diccionari.icarns.xyz

[0]: https://en.m.wikipedia.org/wiki/Catalan_language [1]: https://ca.m.wikipedia.org/wiki/Mallorqu%C3%AD (no English entry, use translator)


Made a simple arithmetic drill generator for my youngest, who was struggling at the time. It had a bit of record keeping about it which encouraged a bit of competition and made it interesting to her and her friends.


I was messing around with friends on Discord around 4 years ago during lockdown, and it hit me you could write a minesweeper message using discord spoiler tags, so I whipped something up in an hour or two and hosting it on github pages, shared it on a couple of servers I was in, and it's still getting traffic regularly

https://igniuss.github.io/det-cord/

It was fun streaming the work to friends who aren't in the IT sphere, some are now studying to get in the industry


A porn site blocker with a RPG element to it https://thewarriortribe.xyz/


A visual browser for Wikipedia that uses common browsing patterns to show connections. https://wikijumps.com/


If you watch Formula 1 racing, you'll know that the tyre strategy is a core part of the race. Inspired by that, I build a stripped down racing simulation game, over a weekend. It was featured on front page of F1 reddit and got some media coverage as well!

Unfortunately it didn't support mobile browser since it was quickly done and that meant a lot of interested folks couldn't play it then.

You can play it here - (https://pitlane.radx.in/)


As an avid F1 fan I'm stoked to try this out, thanks for sharing!


I extended Gnome Search so my project selection/opening is nice an integrated into my DM. It was way harder than I thought as someone with 0 DBUS experience. Fun though!


https://github.com/NotACoin/BLE_LED_strip

this one, took me little time to figure out how to use wireshark, get data, input command with my phone...eventually the voltage regulator died a day after for overcurrent or dead chip. But it was fun. I don't have the motivation to undead the device unfortunatly.


Last August I built and launched EmailReputation API in about 12 hours both out of frustration due to spammers and bots signing up to things using syntactically valid but still bogus emails, and also as a test to see how much I could lean on AI coding tools to build something new as quickly as possible.

https://emailreputationapi.com/

Learned a lot and I now use the API for my other projects!


I can't remember exactly why but I was frustrated with an inability to text my brother using iMessage on my computer. We were watching movies together and I had to use my phone which required looking at it, or something.

One weekend, I wrote a messaging app that used telnet and Twilio to make multi-user, terminal based, communication system with user management and other nice features. It was extremely cool.

He, being kind of a dick, would never use it so I lost it.


I was getting bored with cutting out images from their backgrounds for a project I was working on. Existing solutions didn’t seem that great or wanted a monthly subscription, so this weekend I decided to build my own.

With 0 knowledge of Swift and a bit of ML experience I was able to build a Mac app that does a much better job of it than the built-in model.

Planning more features, including upscaling, exposure/contrast fixes and possibly inpainting.


Took me bout 2 days for the initial release of the config-file-validator. I had been thinking about it for a while and was able just to knock it pretty quickly. It’s changed a LOT since initial release and 95% of that work has been from open source contributors

https://github.com/Boeing/config-file-validator


I built an app to give us analytics on an LLM we are building for a client. It focuses specifically on “what people are talking about”. It’s literally one call to Gemini in terms of LLM usage… https://simplyanalyze.ai/ (We worked on this after the initial weekend but the basic app and UI you see there was working in a weekend)


https://easyrecruitment.tools

All it does right now is it takes a CV, adds branding and standardises its format. I built it as a sort of sweetener for recruiters with the plan of adding more tools.

I used chatgpt to extract and re-word the candidates experiences though and it does tend to hallucinate, so not practically useful.

-edit seems to be down but will have to wait to fix it


A utility to share environment variables with others P2P - https://github.com/viraniaman94/sendenv

Had posted it here as well: https://news.ycombinator.com/item?id=39098133

Got a lot more GitHub stars than I had anticipated. Still getting stars here and there.


I wrote a D&D game in Plang language. https://github.com/PLangHQ/apps/tree/main/DnD

I noticed there are a lot of D&D game in the chatgpt store, so I wanted to bring it to my local machine instead of using the chatgpt website

Took about 4 hours from idea to finish. Source code is in the .goal files


I have these pesky touch typing habits that slow me down: pressing a key and its Shift key with the same hand, or not alternating hands for the spacebar. So I've built an app designed to fix these problems. The idea is to show correct shift keys and correct hand for spacebar to press.

https://www.touchtypist.app


https://kanipaan.codeberg.page/ , a command line calculator written in Clojure. If any one knows how to use Java jline library with Clojure please message me, you can find my contacts here https://yu7.in/mindaslab.


I wrote a Chrome extension that scrapes eBird to pull the GPS coordinates of bird sightings from whichever page you are on and display them on a map. When I want to go out for a bird-watching adventure, I pull up the rare bird alert for my state, kick off the extension, and get a simple map that I can check to see if there have been any birds near me that aren't already on my list.


I made a fun clicking test [1] based on my favourite typing test website [2]. It wasn’t exactly a weekend, but I was recently laid off and everything feels like the weekend now lol.

Not very mobile friendly btw (sorry)

1: https://rsazra.com/clickings

2: https://typings.gg/


I made a Wordle like game that asks you to add two emojis together

https://everything.io


Sounds cool. Is it up? I just get a blank screen with the following:

... + ... = ?

And can't input anything. On mobile


Official (and Accessible) website of a local county in 2006. Zero to deploy in 40hrs (I slept 4hrs per night).

Project, design, implementation, copywriting, bought vps, installed, secured, and configured RedHat, apache, tomcat, the website (a Java-based portal system I used to build together with a team of 5), configured DNS, go-live, attend to the press conference.

No errors, no known security issues. Spotless.


I rebuilt a Rhodes electric piano. Mine was in ok shape but the Rolex was ripped and some notes were hard to play. Turns out all the screws holding it together were bent.

Bought some duratex roll on coating (similar to truck bed liner) and recovered it. Then went to the hardware store and bought replacement screws and bolts to reassemble the keyboard.

Can’t believe how much better it plays now. Butter smooth.


Tolex?


I created PoC for merging similar system requirements and performing gap analysis between vendor documentation and internal company SOPs and policies.

Everything in Python flask + Azure OpenAI. I am working on moving AI part to Claude Sonet. Seems that results are bit different since GPT model has more rough approach to merging requirements and also less sensitive to finding gaps.


I built an app https://hopinio.com - a UGC reviews collector for Instagram sellers.

[1] makes it easy for sellers to collect and showcase genuine customer reviews on Instagram. just shipped the initial version. still working for the launch.

[1]https://hopinio.com


The initial version of my online Numeric Base Converter (https://apps.4fips.com/nubco/) was done in a day, mostly to try out Rust + egui. The app hasn't changed much since then, and I no longer have to search for some random online converter when I need one :)


I implemented a Snapcast client[0] in Rust, with the goal of having synchronized speakers, using only an ESP32 per speaker. I didn't get to the ESP32 part that weekend though, probably it'll come on the next one.

[0]: https://github.com/DavidVentura/snapcast-client


My friend’s kid really likes to email people so I thought it would be neat to build a little auto-responder powered by gpt with different personalities (prompts), got this up and running using flask + gpt assistants api that uses assistants paired with an email service: http://fraind.email


A few years ago, I wrote an interactive visual decoder for flag semaphore cipher: https://bobbiec.github.io/semaphore-decoder.html

As a habitual puzzle hunter, I found it slow and tiring to decode with existing tools, so I wrote my own and still use it.


I made simple mechanical macropad (only two keys) out of LEGO bricks, ethernet wire and Arduino nano. And little bit of PC software to overcome Arduino nano limitations.

I was really surprised how springy LEGO may be :)

https://github.com/karczex/lego-macropad/


I built a command line bookmark manager in Fish and FZF that stores data in Xata, which I then pull into my website as well. Source and demo available on Github from the article below.

https://www.davesnider.com/posts/bookmarks


I wrote a podcast generator based on AI related papers that ingest the podcast dialogues, voices, tag, assemble audio et publish RSS automatically. I was inspired by the PDF ingestion of OpenAI and the quality of the TTS.

It is named https://paperbrief.net


Since I've heard very good things about Svelte & Sveltekit, I decided to give a go and build a trello clone with it. It started as a weekend project, but I've since then continued working on it.

https://github.com/m0g/banban


a notification system that notifies backpackers whenever a highly coveted permits becomes available. made it for myself in a few hours then spent another half day setting it up so other people can subscribe. i got two subscriptions from one reddit comment, made $20 while i was out fishing!


Do you mind sharing a link? Wrote a python script to do the same thing for myself


there's not much to see except a google form for signups and gumroad link for payment. it only has glacier national park configured right now.

the notification system is a github action that runs constantly, scraping the api that makes the reservation.gov permits, and then checking if any of the subscription notifications have changed.

the sign up is a google form that triggers a zapier and adds the new notification subscription to a google sheet. the spreadsheet is used in the github action. the zapier also sends an email with a payment link to the user.

you sign up here: https://forms.gle/eftvBZwapnQb8RmT8

and that sends you a link to pay: https://smcalilly.gumroad.com/l/qxvph

and then it's setup.


Nice! Wish I could use it - but I'm checking for available wilderness permits not campground permits (in Yosemite to hopefully hike the John Muir Trail this summer)


it was wilderness permits for the backcountry, not campground permits. but the api works the same for either permit type. i can hook you up if you happen to catch this message, i don't see an email on your profile. email me at smcalilly@gmail.com


Cool, care to share?!



I built ytpics.com over weekend night, which helps one download pictures from YouTube videos.


Spent some time in an apartment with shady WiFi, dropped connections and frequent disconnects.

I built a macOS menubar app that just... pings: https://github.com/attheodo/Pingu


The very first MVP early version of https://microlaunch.net took me a weekend, then perfected it and put it in the hand of beta testers. The whole idea to launch took a month


Made this a few years ago within a day for personal use: https://wa-dm.pages.dev/ When WhatsApp needed to save the contact first to message using Vue2&Nuxt2


I wrote an instructional book about how to publish your own book. It gets good reviews but not a lot of reads due to a lack of promotion. I’ve been thinking about writing a second edition that would be a much longer version as a must read.


Starting from Wordle, I've created some additional word-based games that can be played in the terminal: https://github.com/ludovicianul/words


I made an HTTP tunneling service based on WireGuard that doesn't require any custom software on the clients: https://tunnel.pyjam.as/.


Goofing around with the Y combinator, and quines (programs that print themselves): I wanted to see how much a quine written in C could be made to look like lisp-style self application. Worked out pretty well!


I was curious and tried to make the smallest useful android app. I was able to get the APK down to 65kb for a basic US constitution reader. For reference, the constitution is 40kb uncompressed.


It's extremely silly and inefficient but I love making random disco gifs: https://github.com/egeozcan/gifDisco


You should put an epilepsy warning before that large gif on your readme.


Thanks for the tip, very thoughtless of me. I added a warning.


A mini chess game that got popular for a while

https://knight-queen-game.netlify.app/


sensless but cool

https://rotr.franzai.com/

rise of the rotars

a "life" simulation that always ends in monoculture

but nice to look at


A fairly simple proxy for unencrypted HTTP transmissions (although it will proxy any TCP transmission): https://gist.github.com/lelanthran/0ab8830c753dba63bbc1c9851...

Clears any compression format headers so that both parties are forced to communicate in the clear. Generally I have a split terminal with client transmissions scrolling down on the left side and server responses scrolling on the right side.

This is something that I find myself using daily, especially when programming embedded devices that talk to a server (esp32, for example). It's nice to be able to switch to a screen and see all the messages scroll by, especially with esp32-type projects where there really is no good way to figure out what the device didn't like about the response (or in what way the request was mangled so that the server program didn't like it).

I use it on web projects as well, because frankly, the three-finger-salute I have configured for switch screens/desktops is much faster than clicking around in devtools.


A web messenger built with Go and Vue.js: https://chat.olzhasar.com/


I've had a long urge to start mixing music, so I scratched that itch over the weekend and now I'm waist deep into a new obsession.


It’s a ton of fun. What software or hardware did you choose?


playing charades with ai: https://charades.ai

originally, the answers and gameplay were based on wordle, but i recently changed it to be more open-ended and like a real game of charades

almost all aspects of the game (images, answers) are generated using the openai api


Most recently it was writing a harness to use control vectors with llama-cpp-python's low level API.


Finished? Haven't managed that yet


A zero-player pixel art universe simulator using pygame.


agilend.tv - TV channel for business-centered video with embeds from Cloudflare serverless and YouTube.


not a weekend, but a week: https://instagib.me


The first version of https://indieblog.page/ took about a weekend.

My pastebin with line commenting https://commie.io/ was also a weekend project.

Heck even the first version of DokuWiki was done on a weekend, but that one still isn't done...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: