{"id":18259979,"url":"https://github.com/hungrybluedev/v-htmx-todolist","last_synced_at":"2025-04-08T23:44:33.118Z","repository":{"id":49845997,"uuid":"518206420","full_name":"hungrybluedev/v-htmx-todolist","owner":"hungrybluedev","description":"A server-side rendered To Do List application with zero custom JS. Built with V and htmx.","archived":false,"fork":false,"pushed_at":"2022-07-26T20:37:18.000Z","size":20,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-14T18:36:23.618Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"V","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hungrybluedev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-26T20:22:55.000Z","updated_at":"2022-11-17T03:35:34.000Z","dependencies_parsed_at":"2022-07-29T22:49:31.453Z","dependency_job_id":null,"html_url":"https://github.com/hungrybluedev/v-htmx-todolist","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hungrybluedev%2Fv-htmx-todolist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hungrybluedev%2Fv-htmx-todolist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hungrybluedev%2Fv-htmx-todolist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hungrybluedev%2Fv-htmx-todolist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hungrybluedev","download_url":"https://codeload.github.com/hungrybluedev/v-htmx-todolist/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247947825,"owners_count":21023058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T10:41:22.890Z","updated_at":"2025-04-08T23:44:33.101Z","avatar_url":"https://github.com/hungrybluedev.png","language":"V","funding_links":["https://github.com/sponsors/hungrybluedev"],"categories":[],"sub_categories":[],"readme":"# To-Do with V + htmx\n\n## Introduction\n\nA sample project written completely with V + htmx.\n\nAll the components are server-side rendered and there is no client side\nJavaScript, except for htmx. The data is persisted on the server in a\ncsv file that is also made available through the route: `localhost:PORT/items.csv`.\n\n## Instructions\n\n1. Make sure you have V installed. If not, refer to the\n   [V GitHub Page](https://github.com/vlang/v).\n2. Clone this repository: `git clone https://github.com/hungrybluedev/v-htmx-todolist.git todolist`.\n3. Enter the project directory with `cd todolist`.\n4. Run the server with `v run .`.\n5. Open the browser and navigate to `localhost:8080`.\n\nIf you want to make changes to the V source code and watch the changes,\nrun `v watch run .`.\n\nIn case you update the `templates/index.html` file, you need to restart\nthe server fully.\n\nIf you want to download the current state of the list, navigate to\n`localhost:8080/items.csv`\n\n## Deployment\n\nThis project has been tested locally. If you want to deploy\nthis to a server, it is recommended to create an optimised executable:\n\n```\n$ v -prod .   \u003c-- this will create an optimised executable\n$ ./todolist  \u003c-- the executable\n```\n\nAlso keep in mind the IO bottleneck and inefficiencies of the app using\na CSV file as its data store.\n\n## Customisation\n\nThe port is set to 8080 by default. If you want a different port,\nset the PORT environment variable to a valid integer:\n\n```\n$ PORT=45000 v run .\n# Or\n$ v -prod .\n$ PORT=13345 ./todolist\n```\n\nThe database will be initialised on the first run, or every time the\n`data` folder is deleted. Check the `initialise_database()` function\nin `db.v` for details.\n\n## Support\n\nMade with ❤️ by Subhomoy Haldar ([@hungrybluedev](https://twitter.com/hungrybluedev)).\n\nIf you liked this project, consider [sponsoring me](https://github.com/sponsors/hungrybluedev) on GitHub.\n\n## License\n\nThis project is distributed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhungrybluedev%2Fv-htmx-todolist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhungrybluedev%2Fv-htmx-todolist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhungrybluedev%2Fv-htmx-todolist/lists"}