roast-api 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/api/bn/roasts-bn-1.json +602 -2
- package/api/en/roasts-en-1.json +602 -2
- package/index.html +47 -0
- package/load_test.js +72 -0
- package/package.json +1 -1
package/api/en/roasts-en-1.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"language": "en",
|
|
3
3
|
"shard": 1,
|
|
4
4
|
"total_shards": 1,
|
|
5
|
-
"count":
|
|
5
|
+
"count": 399,
|
|
6
6
|
"tags": [
|
|
7
7
|
"dev",
|
|
8
8
|
"general"
|
|
@@ -1801,6 +1801,606 @@
|
|
|
1801
1801
|
"text": "Your mocks have more logic than your production code.",
|
|
1802
1802
|
"intensity": 2,
|
|
1803
1803
|
"length": 53
|
|
1804
|
+
},
|
|
1805
|
+
{
|
|
1806
|
+
"id": "en-1-300",
|
|
1807
|
+
"text": "Your code review takes longer than the code itself.",
|
|
1808
|
+
"intensity": 2,
|
|
1809
|
+
"length": 51
|
|
1810
|
+
},
|
|
1811
|
+
{
|
|
1812
|
+
"id": "en-1-301",
|
|
1813
|
+
"text": "You import the entire library just to use one function.",
|
|
1814
|
+
"intensity": 2,
|
|
1815
|
+
"length": 55
|
|
1816
|
+
},
|
|
1817
|
+
{
|
|
1818
|
+
"id": "en-1-302",
|
|
1819
|
+
"text": "Your variable names are an unsolved mystery.",
|
|
1820
|
+
"intensity": 2,
|
|
1821
|
+
"length": 44
|
|
1822
|
+
},
|
|
1823
|
+
{
|
|
1824
|
+
"id": "en-1-303",
|
|
1825
|
+
"text": "You nest ternaries like they're Russian dolls.",
|
|
1826
|
+
"intensity": 2,
|
|
1827
|
+
"length": 46
|
|
1828
|
+
},
|
|
1829
|
+
{
|
|
1830
|
+
"id": "en-1-304",
|
|
1831
|
+
"text": "Your pull requests come with a survival guide.",
|
|
1832
|
+
"intensity": 2,
|
|
1833
|
+
"length": 46
|
|
1834
|
+
},
|
|
1835
|
+
{
|
|
1836
|
+
"id": "en-1-305",
|
|
1837
|
+
"text": "You think 'agile' means changing requirements daily.",
|
|
1838
|
+
"intensity": 1,
|
|
1839
|
+
"length": 52
|
|
1840
|
+
},
|
|
1841
|
+
{
|
|
1842
|
+
"id": "en-1-306",
|
|
1843
|
+
"text": "Your README promises features that don't exist.",
|
|
1844
|
+
"intensity": 2,
|
|
1845
|
+
"length": 47
|
|
1846
|
+
},
|
|
1847
|
+
{
|
|
1848
|
+
"id": "en-1-307",
|
|
1849
|
+
"text": "You hardcode API keys and call it 'convenience'.",
|
|
1850
|
+
"intensity": 2,
|
|
1851
|
+
"length": 48
|
|
1852
|
+
},
|
|
1853
|
+
{
|
|
1854
|
+
"id": "en-1-308",
|
|
1855
|
+
"text": "Your regex looks like a cat walked on the keyboard.",
|
|
1856
|
+
"intensity": 2,
|
|
1857
|
+
"length": 51
|
|
1858
|
+
},
|
|
1859
|
+
{
|
|
1860
|
+
"id": "en-1-309",
|
|
1861
|
+
"text": "You copy-paste from ChatGPT without reading it.",
|
|
1862
|
+
"intensity": 3,
|
|
1863
|
+
"length": 47
|
|
1864
|
+
},
|
|
1865
|
+
{
|
|
1866
|
+
"id": "en-1-310",
|
|
1867
|
+
"text": "Your codebase has more dead code than a haunted graveyard.",
|
|
1868
|
+
"intensity": 3,
|
|
1869
|
+
"length": 58
|
|
1870
|
+
},
|
|
1871
|
+
{
|
|
1872
|
+
"id": "en-1-311",
|
|
1873
|
+
"text": "You name functions 'doStuff' and 'handleThings'.",
|
|
1874
|
+
"intensity": 2,
|
|
1875
|
+
"length": 48
|
|
1876
|
+
},
|
|
1877
|
+
{
|
|
1878
|
+
"id": "en-1-312",
|
|
1879
|
+
"text": "Your package.json has more dependencies than your project has users.",
|
|
1880
|
+
"intensity": 3,
|
|
1881
|
+
"length": 68
|
|
1882
|
+
},
|
|
1883
|
+
{
|
|
1884
|
+
"id": "en-1-313",
|
|
1885
|
+
"text": "You use setTimeout to fix race conditions.",
|
|
1886
|
+
"intensity": 2,
|
|
1887
|
+
"length": 42
|
|
1888
|
+
},
|
|
1889
|
+
{
|
|
1890
|
+
"id": "en-1-314",
|
|
1891
|
+
"text": "Your deployment pipeline is just an SSH script and a prayer.",
|
|
1892
|
+
"intensity": 2,
|
|
1893
|
+
"length": 60
|
|
1894
|
+
},
|
|
1895
|
+
{
|
|
1896
|
+
"id": "en-1-315",
|
|
1897
|
+
"text": "You wrote a 500-line function and called it 'clean code'.",
|
|
1898
|
+
"intensity": 1,
|
|
1899
|
+
"length": 57
|
|
1900
|
+
},
|
|
1901
|
+
{
|
|
1902
|
+
"id": "en-1-316",
|
|
1903
|
+
"text": "Your test coverage is technically not zero, but spiritually it is.",
|
|
1904
|
+
"intensity": 2,
|
|
1905
|
+
"length": 66
|
|
1906
|
+
},
|
|
1907
|
+
{
|
|
1908
|
+
"id": "en-1-317",
|
|
1909
|
+
"text": "You version your API by adding numbers to the URL path randomly.",
|
|
1910
|
+
"intensity": 2,
|
|
1911
|
+
"length": 64
|
|
1912
|
+
},
|
|
1913
|
+
{
|
|
1914
|
+
"id": "en-1-318",
|
|
1915
|
+
"text": "Your commit messages are just emojis.",
|
|
1916
|
+
"intensity": 2,
|
|
1917
|
+
"length": 37
|
|
1918
|
+
},
|
|
1919
|
+
{
|
|
1920
|
+
"id": "en-1-319",
|
|
1921
|
+
"text": "You think TypeScript is optional JavaScript with extra steps.",
|
|
1922
|
+
"intensity": 3,
|
|
1923
|
+
"length": 61
|
|
1924
|
+
},
|
|
1925
|
+
{
|
|
1926
|
+
"id": "en-1-320",
|
|
1927
|
+
"text": "Your database has no indexes and you blame the ORM.",
|
|
1928
|
+
"intensity": 2,
|
|
1929
|
+
"length": 51
|
|
1930
|
+
},
|
|
1931
|
+
{
|
|
1932
|
+
"id": "en-1-321",
|
|
1933
|
+
"text": "You treat authentication as a nice-to-have.",
|
|
1934
|
+
"intensity": 2,
|
|
1935
|
+
"length": 43
|
|
1936
|
+
},
|
|
1937
|
+
{
|
|
1938
|
+
"id": "en-1-322",
|
|
1939
|
+
"text": "Your error pages have more personality than your app.",
|
|
1940
|
+
"intensity": 1,
|
|
1941
|
+
"length": 53
|
|
1942
|
+
},
|
|
1943
|
+
{
|
|
1944
|
+
"id": "en-1-323",
|
|
1945
|
+
"text": "You use eval() and sleep well at night.",
|
|
1946
|
+
"intensity": 2,
|
|
1947
|
+
"length": 39
|
|
1948
|
+
},
|
|
1949
|
+
{
|
|
1950
|
+
"id": "en-1-324",
|
|
1951
|
+
"text": "Your responsive design only works on your monitor.",
|
|
1952
|
+
"intensity": 1,
|
|
1953
|
+
"length": 50
|
|
1954
|
+
},
|
|
1955
|
+
{
|
|
1956
|
+
"id": "en-1-325",
|
|
1957
|
+
"text": "You solve every problem with another npm package.",
|
|
1958
|
+
"intensity": 1,
|
|
1959
|
+
"length": 49
|
|
1960
|
+
},
|
|
1961
|
+
{
|
|
1962
|
+
"id": "en-1-326",
|
|
1963
|
+
"text": "Your environment has more .env files than actual environments.",
|
|
1964
|
+
"intensity": 2,
|
|
1965
|
+
"length": 62
|
|
1966
|
+
},
|
|
1967
|
+
{
|
|
1968
|
+
"id": "en-1-327",
|
|
1969
|
+
"text": "You rebase like you're defusing a bomb blindfolded.",
|
|
1970
|
+
"intensity": 2,
|
|
1971
|
+
"length": 51
|
|
1972
|
+
},
|
|
1973
|
+
{
|
|
1974
|
+
"id": "en-1-328",
|
|
1975
|
+
"text": "Your code comments explain what the code does, not why.",
|
|
1976
|
+
"intensity": 3,
|
|
1977
|
+
"length": 55
|
|
1978
|
+
},
|
|
1979
|
+
{
|
|
1980
|
+
"id": "en-1-329",
|
|
1981
|
+
"text": "You use 'any' type in TypeScript and call it 'flexibility'.",
|
|
1982
|
+
"intensity": 2,
|
|
1983
|
+
"length": 59
|
|
1984
|
+
},
|
|
1985
|
+
{
|
|
1986
|
+
"id": "en-1-330",
|
|
1987
|
+
"text": "Your API returns 200 OK for everything, even errors.",
|
|
1988
|
+
"intensity": 1,
|
|
1989
|
+
"length": 52
|
|
1990
|
+
},
|
|
1991
|
+
{
|
|
1992
|
+
"id": "en-1-331",
|
|
1993
|
+
"text": "You store dates as strings and wonder why sorting breaks.",
|
|
1994
|
+
"intensity": 2,
|
|
1995
|
+
"length": 57
|
|
1996
|
+
},
|
|
1997
|
+
{
|
|
1998
|
+
"id": "en-1-332",
|
|
1999
|
+
"text": "Your webpack config is longer than your application.",
|
|
2000
|
+
"intensity": 2,
|
|
2001
|
+
"length": 52
|
|
2002
|
+
},
|
|
2003
|
+
{
|
|
2004
|
+
"id": "en-1-333",
|
|
2005
|
+
"text": "You've built a framework to avoid learning a framework.",
|
|
2006
|
+
"intensity": 1,
|
|
2007
|
+
"length": 55
|
|
2008
|
+
},
|
|
2009
|
+
{
|
|
2010
|
+
"id": "en-1-334",
|
|
2011
|
+
"text": "Your SQL injection protection is a strongly worded comment.",
|
|
2012
|
+
"intensity": 3,
|
|
2013
|
+
"length": 59
|
|
2014
|
+
},
|
|
2015
|
+
{
|
|
2016
|
+
"id": "en-1-335",
|
|
2017
|
+
"text": "You write switch statements with 47 cases and no default.",
|
|
2018
|
+
"intensity": 2,
|
|
2019
|
+
"length": 57
|
|
2020
|
+
},
|
|
2021
|
+
{
|
|
2022
|
+
"id": "en-1-336",
|
|
2023
|
+
"text": "Your mobile app is just a WebView with extra steps.",
|
|
2024
|
+
"intensity": 2,
|
|
2025
|
+
"length": 51
|
|
2026
|
+
},
|
|
2027
|
+
{
|
|
2028
|
+
"id": "en-1-337",
|
|
2029
|
+
"text": "You handle concurrency by hoping for the best.",
|
|
2030
|
+
"intensity": 1,
|
|
2031
|
+
"length": 46
|
|
2032
|
+
},
|
|
2033
|
+
{
|
|
2034
|
+
"id": "en-1-338",
|
|
2035
|
+
"text": "Your load balancer has a single backend.",
|
|
2036
|
+
"intensity": 2,
|
|
2037
|
+
"length": 40
|
|
2038
|
+
},
|
|
2039
|
+
{
|
|
2040
|
+
"id": "en-1-339",
|
|
2041
|
+
"text": "You use Base64 encoding and call it encryption.",
|
|
2042
|
+
"intensity": 1,
|
|
2043
|
+
"length": 47
|
|
2044
|
+
},
|
|
2045
|
+
{
|
|
2046
|
+
"id": "en-1-340",
|
|
2047
|
+
"text": "Your monitoring dashboard has been 'Coming Soon' for two years.",
|
|
2048
|
+
"intensity": 2,
|
|
2049
|
+
"length": 63
|
|
2050
|
+
},
|
|
2051
|
+
{
|
|
2052
|
+
"id": "en-1-341",
|
|
2053
|
+
"text": "You think CORS is a personal attack on your career.",
|
|
2054
|
+
"intensity": 2,
|
|
2055
|
+
"length": 51
|
|
2056
|
+
},
|
|
2057
|
+
{
|
|
2058
|
+
"id": "en-1-342",
|
|
2059
|
+
"text": "Your cache invalidation strategy is 'restart everything'.",
|
|
2060
|
+
"intensity": 2,
|
|
2061
|
+
"length": 57
|
|
2062
|
+
},
|
|
2063
|
+
{
|
|
2064
|
+
"id": "en-1-343",
|
|
2065
|
+
"text": "You build microservices that are just a distributed monolith.",
|
|
2066
|
+
"intensity": 2,
|
|
2067
|
+
"length": 61
|
|
2068
|
+
},
|
|
2069
|
+
{
|
|
2070
|
+
"id": "en-1-344",
|
|
2071
|
+
"text": "Your git stash is a time capsule of abandoned dreams.",
|
|
2072
|
+
"intensity": 2,
|
|
2073
|
+
"length": 53
|
|
2074
|
+
},
|
|
2075
|
+
{
|
|
2076
|
+
"id": "en-1-345",
|
|
2077
|
+
"text": "You write bash scripts that only work on your machine.",
|
|
2078
|
+
"intensity": 3,
|
|
2079
|
+
"length": 54
|
|
2080
|
+
},
|
|
2081
|
+
{
|
|
2082
|
+
"id": "en-1-346",
|
|
2083
|
+
"text": "Your code has more flags than the United Nations.",
|
|
2084
|
+
"intensity": 2,
|
|
2085
|
+
"length": 49
|
|
2086
|
+
},
|
|
2087
|
+
{
|
|
2088
|
+
"id": "en-1-347",
|
|
2089
|
+
"text": "You think semantic versioning means 'vibes-based numbering'.",
|
|
2090
|
+
"intensity": 2,
|
|
2091
|
+
"length": 60
|
|
2092
|
+
},
|
|
2093
|
+
{
|
|
2094
|
+
"id": "en-1-348",
|
|
2095
|
+
"text": "Your error logs are a novel nobody wants to read.",
|
|
2096
|
+
"intensity": 2,
|
|
2097
|
+
"length": 49
|
|
2098
|
+
},
|
|
2099
|
+
{
|
|
2100
|
+
"id": "en-1-349",
|
|
2101
|
+
"text": "You solve merge conflicts by accepting both changes.",
|
|
2102
|
+
"intensity": 2,
|
|
2103
|
+
"length": 52
|
|
2104
|
+
},
|
|
2105
|
+
{
|
|
2106
|
+
"id": "en-1-350",
|
|
2107
|
+
"text": "Your infrastructure is held together by duct tape and cron jobs.",
|
|
2108
|
+
"intensity": 3,
|
|
2109
|
+
"length": 64
|
|
2110
|
+
},
|
|
2111
|
+
{
|
|
2112
|
+
"id": "en-1-351",
|
|
2113
|
+
"text": "You use innerHTML like it owes you money.",
|
|
2114
|
+
"intensity": 2,
|
|
2115
|
+
"length": 41
|
|
2116
|
+
},
|
|
2117
|
+
{
|
|
2118
|
+
"id": "en-1-352",
|
|
2119
|
+
"text": "Your design system is 'whatever looked good at 2 AM'.",
|
|
2120
|
+
"intensity": 1,
|
|
2121
|
+
"length": 53
|
|
2122
|
+
},
|
|
2123
|
+
{
|
|
2124
|
+
"id": "en-1-353",
|
|
2125
|
+
"text": "Your sprint velocity is measured in excuses per day.",
|
|
2126
|
+
"intensity": 3,
|
|
2127
|
+
"length": 52
|
|
2128
|
+
},
|
|
2129
|
+
{
|
|
2130
|
+
"id": "en-1-354",
|
|
2131
|
+
"text": "You treat code review comments as optional literature.",
|
|
2132
|
+
"intensity": 3,
|
|
2133
|
+
"length": 54
|
|
2134
|
+
},
|
|
2135
|
+
{
|
|
2136
|
+
"id": "en-1-355",
|
|
2137
|
+
"text": "Your production database is also your dev database.",
|
|
2138
|
+
"intensity": 3,
|
|
2139
|
+
"length": 51
|
|
2140
|
+
},
|
|
2141
|
+
{
|
|
2142
|
+
"id": "en-1-356",
|
|
2143
|
+
"text": "You refactor by deleting everything and starting over.",
|
|
2144
|
+
"intensity": 2,
|
|
2145
|
+
"length": 54
|
|
2146
|
+
},
|
|
2147
|
+
{
|
|
2148
|
+
"id": "en-1-357",
|
|
2149
|
+
"text": "Your API pagination returns all results on page one.",
|
|
2150
|
+
"intensity": 1,
|
|
2151
|
+
"length": 52
|
|
2152
|
+
},
|
|
2153
|
+
{
|
|
2154
|
+
"id": "en-1-358",
|
|
2155
|
+
"text": "You think 'scalable' means 'I'll fix it once we have users'.",
|
|
2156
|
+
"intensity": 1,
|
|
2157
|
+
"length": 60
|
|
2158
|
+
},
|
|
2159
|
+
{
|
|
2160
|
+
"id": "en-1-359",
|
|
2161
|
+
"text": "Your retry logic is an infinite loop with attitude.",
|
|
2162
|
+
"intensity": 1,
|
|
2163
|
+
"length": 51
|
|
2164
|
+
},
|
|
2165
|
+
{
|
|
2166
|
+
"id": "en-1-360",
|
|
2167
|
+
"text": "You deploy by drag-and-dropping files on the server.",
|
|
2168
|
+
"intensity": 2,
|
|
2169
|
+
"length": 52
|
|
2170
|
+
},
|
|
2171
|
+
{
|
|
2172
|
+
"id": "en-1-361",
|
|
2173
|
+
"text": "Your unit tests mock the entire universe.",
|
|
2174
|
+
"intensity": 2,
|
|
2175
|
+
"length": 41
|
|
2176
|
+
},
|
|
2177
|
+
{
|
|
2178
|
+
"id": "en-1-362",
|
|
2179
|
+
"text": "You call your spaghetti code 'event-driven architecture'.",
|
|
2180
|
+
"intensity": 1,
|
|
2181
|
+
"length": 57
|
|
2182
|
+
},
|
|
2183
|
+
{
|
|
2184
|
+
"id": "en-1-363",
|
|
2185
|
+
"text": "Your logging strategy is console.log('here') in every file.",
|
|
2186
|
+
"intensity": 1,
|
|
2187
|
+
"length": 59
|
|
2188
|
+
},
|
|
2189
|
+
{
|
|
2190
|
+
"id": "en-1-364",
|
|
2191
|
+
"text": "You write JavaScript like it personally wronged you.",
|
|
2192
|
+
"intensity": 2,
|
|
2193
|
+
"length": 52
|
|
2194
|
+
},
|
|
2195
|
+
{
|
|
2196
|
+
"id": "en-1-365",
|
|
2197
|
+
"text": "Your API rate limit is 'unlimited until the server catches fire'.",
|
|
2198
|
+
"intensity": 1,
|
|
2199
|
+
"length": 65
|
|
2200
|
+
},
|
|
2201
|
+
{
|
|
2202
|
+
"id": "en-1-366",
|
|
2203
|
+
"text": "Your database migrations scare even the DBA.",
|
|
2204
|
+
"intensity": 2,
|
|
2205
|
+
"length": 44
|
|
2206
|
+
},
|
|
2207
|
+
{
|
|
2208
|
+
"id": "en-1-367",
|
|
2209
|
+
"text": "You solve performance issues by buying bigger servers.",
|
|
2210
|
+
"intensity": 2,
|
|
2211
|
+
"length": 54
|
|
2212
|
+
},
|
|
2213
|
+
{
|
|
2214
|
+
"id": "en-1-368",
|
|
2215
|
+
"text": "Your CI pipeline takes longer than most movie trilogies.",
|
|
2216
|
+
"intensity": 2,
|
|
2217
|
+
"length": 56
|
|
2218
|
+
},
|
|
2219
|
+
{
|
|
2220
|
+
"id": "en-1-369",
|
|
2221
|
+
"text": "You use global variables because 'sharing is caring'.",
|
|
2222
|
+
"intensity": 2,
|
|
2223
|
+
"length": 53
|
|
2224
|
+
},
|
|
2225
|
+
{
|
|
2226
|
+
"id": "en-1-370",
|
|
2227
|
+
"text": "Your code formatting is an abstract art installation.",
|
|
2228
|
+
"intensity": 3,
|
|
2229
|
+
"length": 53
|
|
2230
|
+
},
|
|
2231
|
+
{
|
|
2232
|
+
"id": "en-1-371",
|
|
2233
|
+
"text": "You handle null by pretending it's someone else's problem.",
|
|
2234
|
+
"intensity": 1,
|
|
2235
|
+
"length": 58
|
|
2236
|
+
},
|
|
2237
|
+
{
|
|
2238
|
+
"id": "en-1-372",
|
|
2239
|
+
"text": "Your tech stack changes every sprint.",
|
|
2240
|
+
"intensity": 2,
|
|
2241
|
+
"length": 37
|
|
2242
|
+
},
|
|
2243
|
+
{
|
|
2244
|
+
"id": "en-1-373",
|
|
2245
|
+
"text": "You think 'backwards compatible' means 'it still compiles'.",
|
|
2246
|
+
"intensity": 1,
|
|
2247
|
+
"length": 59
|
|
2248
|
+
},
|
|
2249
|
+
{
|
|
2250
|
+
"id": "en-1-374",
|
|
2251
|
+
"text": "Your rollback plan is 'git revert and hope'.",
|
|
2252
|
+
"intensity": 3,
|
|
2253
|
+
"length": 44
|
|
2254
|
+
},
|
|
2255
|
+
{
|
|
2256
|
+
"id": "en-1-375",
|
|
2257
|
+
"text": "You write promises and never resolve them, just like your tasks.",
|
|
2258
|
+
"intensity": 2,
|
|
2259
|
+
"length": 64
|
|
2260
|
+
},
|
|
2261
|
+
{
|
|
2262
|
+
"id": "en-1-376",
|
|
2263
|
+
"text": "Your type safety is 'I'll add types later, I promise'.",
|
|
2264
|
+
"intensity": 2,
|
|
2265
|
+
"length": 54
|
|
2266
|
+
},
|
|
2267
|
+
{
|
|
2268
|
+
"id": "en-1-377",
|
|
2269
|
+
"text": "Your frontend sends 47 API calls on page load.",
|
|
2270
|
+
"intensity": 2,
|
|
2271
|
+
"length": 46
|
|
2272
|
+
},
|
|
2273
|
+
{
|
|
2274
|
+
"id": "en-1-378",
|
|
2275
|
+
"text": "You build REST APIs that aren't RESTful in any way.",
|
|
2276
|
+
"intensity": 2,
|
|
2277
|
+
"length": 51
|
|
2278
|
+
},
|
|
2279
|
+
{
|
|
2280
|
+
"id": "en-1-379",
|
|
2281
|
+
"text": "Your Kubernetes cluster runs a single container.",
|
|
2282
|
+
"intensity": 2,
|
|
2283
|
+
"length": 48
|
|
2284
|
+
},
|
|
2285
|
+
{
|
|
2286
|
+
"id": "en-1-380",
|
|
2287
|
+
"text": "You think OAuth is just 'login with Google'.",
|
|
2288
|
+
"intensity": 1,
|
|
2289
|
+
"length": 44
|
|
2290
|
+
},
|
|
2291
|
+
{
|
|
2292
|
+
"id": "en-1-381",
|
|
2293
|
+
"text": "Your caching layer caches nothing useful.",
|
|
2294
|
+
"intensity": 2,
|
|
2295
|
+
"length": 41
|
|
2296
|
+
},
|
|
2297
|
+
{
|
|
2298
|
+
"id": "en-1-382",
|
|
2299
|
+
"text": "You use regex to parse HTML and wonder why it breaks.",
|
|
2300
|
+
"intensity": 2,
|
|
2301
|
+
"length": 53
|
|
2302
|
+
},
|
|
2303
|
+
{
|
|
2304
|
+
"id": "en-1-383",
|
|
2305
|
+
"text": "Your service mesh is just services that happen to be near each other.",
|
|
2306
|
+
"intensity": 3,
|
|
2307
|
+
"length": 69
|
|
2308
|
+
},
|
|
2309
|
+
{
|
|
2310
|
+
"id": "en-1-384",
|
|
2311
|
+
"text": "You handle time zones by ignoring them completely.",
|
|
2312
|
+
"intensity": 2,
|
|
2313
|
+
"length": 50
|
|
2314
|
+
},
|
|
2315
|
+
{
|
|
2316
|
+
"id": "en-1-385",
|
|
2317
|
+
"text": "Your GraphQL queries fetch the entire database.",
|
|
2318
|
+
"intensity": 2,
|
|
2319
|
+
"length": 47
|
|
2320
|
+
},
|
|
2321
|
+
{
|
|
2322
|
+
"id": "en-1-386",
|
|
2323
|
+
"text": "You write middleware that does everything except its actual job.",
|
|
2324
|
+
"intensity": 2,
|
|
2325
|
+
"length": 64
|
|
2326
|
+
},
|
|
2327
|
+
{
|
|
2328
|
+
"id": "en-1-387",
|
|
2329
|
+
"text": "Your feature branches have been alive longer than some startups.",
|
|
2330
|
+
"intensity": 3,
|
|
2331
|
+
"length": 64
|
|
2332
|
+
},
|
|
2333
|
+
{
|
|
2334
|
+
"id": "en-1-388",
|
|
2335
|
+
"text": "You think connection pooling means opening a new connection every time.",
|
|
2336
|
+
"intensity": 2,
|
|
2337
|
+
"length": 71
|
|
2338
|
+
},
|
|
2339
|
+
{
|
|
2340
|
+
"id": "en-1-389",
|
|
2341
|
+
"text": "Your CDN serves stale content from last year.",
|
|
2342
|
+
"intensity": 3,
|
|
2343
|
+
"length": 45
|
|
2344
|
+
},
|
|
2345
|
+
{
|
|
2346
|
+
"id": "en-1-390",
|
|
2347
|
+
"text": "You use localStorage for user sessions.",
|
|
2348
|
+
"intensity": 2,
|
|
2349
|
+
"length": 39
|
|
2350
|
+
},
|
|
2351
|
+
{
|
|
2352
|
+
"id": "en-1-391",
|
|
2353
|
+
"text": "Your websocket connection reconnects more than your relationships.",
|
|
2354
|
+
"intensity": 3,
|
|
2355
|
+
"length": 66
|
|
2356
|
+
},
|
|
2357
|
+
{
|
|
2358
|
+
"id": "en-1-392",
|
|
2359
|
+
"text": "Your serverless functions have a 30-second cold start.",
|
|
2360
|
+
"intensity": 2,
|
|
2361
|
+
"length": 54
|
|
2362
|
+
},
|
|
2363
|
+
{
|
|
2364
|
+
"id": "en-1-393",
|
|
2365
|
+
"text": "You think 'idempotent' is a compliment.",
|
|
2366
|
+
"intensity": 2,
|
|
2367
|
+
"length": 39
|
|
2368
|
+
},
|
|
2369
|
+
{
|
|
2370
|
+
"id": "en-1-394",
|
|
2371
|
+
"text": "Your database schema was designed during a fever dream.",
|
|
2372
|
+
"intensity": 2,
|
|
2373
|
+
"length": 55
|
|
2374
|
+
},
|
|
2375
|
+
{
|
|
2376
|
+
"id": "en-1-395",
|
|
2377
|
+
"text": "You use floating point for currency and blame JavaScript.",
|
|
2378
|
+
"intensity": 2,
|
|
2379
|
+
"length": 57
|
|
2380
|
+
},
|
|
2381
|
+
{
|
|
2382
|
+
"id": "en-1-396",
|
|
2383
|
+
"text": "Your health check endpoint always returns 200, even when the app is dead.",
|
|
2384
|
+
"intensity": 2,
|
|
2385
|
+
"length": 73
|
|
2386
|
+
},
|
|
2387
|
+
{
|
|
2388
|
+
"id": "en-1-397",
|
|
2389
|
+
"text": "You think 'eventual consistency' means 'maybe it'll work eventually'.",
|
|
2390
|
+
"intensity": 3,
|
|
2391
|
+
"length": 69
|
|
2392
|
+
},
|
|
2393
|
+
{
|
|
2394
|
+
"id": "en-1-398",
|
|
2395
|
+
"text": "Your npm audit has more vulnerabilities than lines of code.",
|
|
2396
|
+
"intensity": 2,
|
|
2397
|
+
"length": 59
|
|
2398
|
+
},
|
|
2399
|
+
{
|
|
2400
|
+
"id": "en-1-399",
|
|
2401
|
+
"text": "You name your Docker images 'latest' and wonder why deploys break.",
|
|
2402
|
+
"intensity": 1,
|
|
2403
|
+
"length": 66
|
|
1804
2404
|
}
|
|
1805
2405
|
]
|
|
1806
|
-
}
|
|
2406
|
+
}
|
package/index.html
CHANGED
|
@@ -46,6 +46,17 @@
|
|
|
46
46
|
<p class="meta">
|
|
47
47
|
Served from GitHub Pages edge cache. Designed for bots, CLIs, dashboards, and CI pipelines.
|
|
48
48
|
</p>
|
|
49
|
+
<div style="display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px;">
|
|
50
|
+
<a href="https://www.npmjs.com/package/roast-api" target="_blank"><img
|
|
51
|
+
src="https://img.shields.io/npm/v/roast-api?style=flat-square&color=f97316&labelColor=020617"
|
|
52
|
+
alt="npm version" /></a>
|
|
53
|
+
<a href="https://www.npmjs.com/package/roast-api" target="_blank"><img
|
|
54
|
+
src="https://img.shields.io/npm/dm/roast-api?style=flat-square&color=ec4899&labelColor=020617"
|
|
55
|
+
alt="npm downloads" /></a>
|
|
56
|
+
<a href="https://github.com/Maijied/roast-as-a-service" target="_blank"><img
|
|
57
|
+
src="https://img.shields.io/github/stars/Maijied/roast-as-a-service?style=flat-square&color=f97316&labelColor=020617"
|
|
58
|
+
alt="GitHub stars" /></a>
|
|
59
|
+
</div>
|
|
49
60
|
</div>
|
|
50
61
|
|
|
51
62
|
<div class="hero-card">
|
|
@@ -187,6 +198,42 @@ async function getRandomRoast(lang = 'en') {
|
|
|
187
198
|
</div>
|
|
188
199
|
</section>
|
|
189
200
|
|
|
201
|
+
<section class="section">
|
|
202
|
+
<h2>Performance</h2>
|
|
203
|
+
<div class="code-card"
|
|
204
|
+
style="background: linear-gradient(135deg, rgba(249,115,22,0.1), rgba(236,72,153,0.1)); border: 1px solid var(--border-subtle);">
|
|
205
|
+
<div style="padding: 16px;">
|
|
206
|
+
<div
|
|
207
|
+
style="display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 20px; text-align: center;">
|
|
208
|
+
<div>
|
|
209
|
+
<div style="font-size: 1.8rem; font-weight: 800; color: var(--accent);">2,000+</div>
|
|
210
|
+
<div style="font-size: 0.8rem; text-transform: uppercase; color: var(--text-muted);">
|
|
211
|
+
Requests / Sec</div>
|
|
212
|
+
</div>
|
|
213
|
+
<div>
|
|
214
|
+
<div style="font-size: 1.8rem; font-weight: 800; color: var(--accent-2);">100%</div>
|
|
215
|
+
<div style="font-size: 0.8rem; text-transform: uppercase; color: var(--text-muted);">
|
|
216
|
+
Success Rate</div>
|
|
217
|
+
</div>
|
|
218
|
+
<div>
|
|
219
|
+
<div style="font-size: 1.8rem; font-weight: 800; color: #10b981;">~50ms</div>
|
|
220
|
+
<div style="font-size: 0.8rem; text-transform: uppercase; color: var(--text-muted);">Avg
|
|
221
|
+
Latency</div>
|
|
222
|
+
</div>
|
|
223
|
+
<div>
|
|
224
|
+
<div style="font-size: 1.8rem; font-weight: 800; color: #3b82f6;">90%</div>
|
|
225
|
+
<div style="font-size: 0.8rem; text-transform: uppercase; color: var(--text-muted);">
|
|
226
|
+
Cache Hits</div>
|
|
227
|
+
</div>
|
|
228
|
+
</div>
|
|
229
|
+
<p style="font-size: 0.85rem; margin-top: 20px; color: var(--text-soft); text-align: center;">
|
|
230
|
+
Zero backend, zero cold starts. Optimized for extreme throughput and low TTFB using GitHub
|
|
231
|
+
Pages' edge CDN.
|
|
232
|
+
</p>
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
235
|
+
</section>
|
|
236
|
+
|
|
190
237
|
<section class="section">
|
|
191
238
|
<h2>Postman collection</h2>
|
|
192
239
|
<p>
|